This is an automated email from the ASF dual-hosted git repository.

klesh pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-devlake.git


The following commit(s) were added to refs/heads/main by this push:
     new 0e53cd058 refactor(config-ui): move theme config to root (#6812)
0e53cd058 is described below

commit 0e53cd058af1d3dc755b6789ccf3102cee273c80
Author: 青湛 <[email protected]>
AuthorDate: Mon Jan 15 20:25:02 2024 +1300

    refactor(config-ui): move theme config to root (#6812)
---
 config-ui/src/main.tsx                 |  15 ++-
 config-ui/src/routes/layout/layout.tsx | 162 ++++++++++++++++-----------------
 2 files changed, 89 insertions(+), 88 deletions(-)

diff --git a/config-ui/src/main.tsx b/config-ui/src/main.tsx
index e72bc3db5..d3b35c690 100644
--- a/config-ui/src/main.tsx
+++ b/config-ui/src/main.tsx
@@ -19,6 +19,7 @@
 import ReactDOM from 'react-dom';
 import { Provider } from 'react-redux';
 import { RouterProvider } from 'react-router-dom';
+import { ConfigProvider } from 'antd';
 
 import { PageLoading } from '@/components';
 
@@ -27,8 +28,16 @@ import { router } from './app/routrer';
 import './index.css';
 
 ReactDOM.render(
-  <Provider store={store}>
-    <RouterProvider router={router} fallbackElement={<PageLoading />} />
-  </Provider>,
+  <ConfigProvider
+    theme={{
+      token: {
+        colorPrimary: import.meta.env.DEVLAKE_COLOR_CUSTOM ?? '#7497F7',
+      },
+    }}
+  >
+    <Provider store={store}>
+      <RouterProvider router={router} fallbackElement={<PageLoading />} />
+    </Provider>
+  </ConfigProvider>,
   document.getElementById('root'),
 );
diff --git a/config-ui/src/routes/layout/layout.tsx 
b/config-ui/src/routes/layout/layout.tsx
index 437afadce..f57a81a93 100644
--- a/config-ui/src/routes/layout/layout.tsx
+++ b/config-ui/src/routes/layout/layout.tsx
@@ -20,7 +20,7 @@ import { useState, useEffect, useRef } from 'react';
 import { useLoaderData, Outlet, useNavigate, useLocation } from 
'react-router-dom';
 import { CSSTransition } from 'react-transition-group';
 import { CloseOutlined } from '@ant-design/icons';
-import { ConfigProvider, Layout as AntdLayout, Menu, Flex, Divider, Tooltip, 
Button } from 'antd';
+import { Layout as AntdLayout, Menu, Flex, Divider, Tooltip, Button } from 
'antd';
 
 import API from '@/api';
 import { PageLoading, Logo, ExternalLink, Message } from '@/components';
@@ -117,91 +117,83 @@ export const Layout = () => {
   };
 
   return (
-    <ConfigProvider
-      theme={{
-        token: {
-          colorPrimary: import.meta.env.DEVLAKE_COLOR_CUSTOM ?? '#7497F7',
-        },
-      }}
-    >
-      <AntdLayout style={{ height: '100vh' }}>
-        <Sider>
-          {import.meta.env.DEVLAKE_TITLE_CUSTOM ? (
-            <h2 style={{ margin: '36px 0', textAlign: 'center', color: '#fff' 
}}>
-              {import.meta.env.DEVLAKE_TITLE_CUSTOM}
-            </h2>
-          ) : (
-            <Logo style={{ padding: 24 }} />
-          )}
-          <Menu
-            mode="inline"
-            theme="dark"
-            items={menuItems}
-            openKeys={openKeys}
-            selectedKeys={selectedKeys}
-            onClick={({ key }) => navigate(key)}
-            onOpenChange={(keys) => setOpenKeys(keys)}
-          />
-          <div style={{ position: 'absolute', right: 0, bottom: 20, left: 0, 
color: '#fff', textAlign: 'center' }}>
-            {version}
-          </div>
-        </Sider>
-        <AntdLayout style={{ overflowY: 'auto' }}>
-          <Header
-            style={{
-              display: 'flex',
-              justifyContent: 'flex-end',
-              alignItems: 'center',
-              padding: '0 24px',
-              height: 50,
-              background: 'transparent',
-            }}
-          >
-            {headerItems
-              .filter((item) =>
-                import.meta.env.DEVLAKE_COPYRIGHT_HIDE ? !['GitHub', 
'Slack'].includes(item.label) : true,
-              )
-              .map((item, i, arr) => (
-                <ExternalLink key={item.label} link={item.link} style={{ 
display: 'flex', alignItems: 'center' }}>
-                  {item.icon}
-                  <span style={{ marginLeft: 4 }}>{item.label}</span>
-                  {i !== arr.length - 1 && <Divider type="vertical" />}
-                </ExternalLink>
-              ))}
-          </Header>
-          <Content style={{ margin: '16px auto', width: 1188 }}>
-            <Outlet />
-          </Content>
-          {!import.meta.env.DEVLAKE_COPYRIGHT_HIDE && (
-            <Footer>
-              <p style={{ textAlign: 'center' }}>Apache 2.0 License</p>
-            </Footer>
-          )}
-          <CSSTransition in={!!tipsShow} unmountOnExit timeout={300} 
nodeRef={tipsRef} classNames="tips">
-            <S.Tips ref={tipsRef}>
-              <div className="content">
-                {tipsType === 'data-scope-changed' && (
-                  <Flex gap="middle">
-                    <Message content="The change of Data Scope(s) will affect 
the metrics of this project. Would you like to recollect the data to get them 
updated?" />
-                    <Button type="primary" loading={operating} 
onClick={handleRunBP}>
-                      Recollect Data
-                    </Button>
-                  </Flex>
-                )}
-                {tipsType === 'scope-config-changed' && (
-                  <Message
-                    content="Scope Config(s) have been updated. If you would 
like to re-transform or re-collect the data in the related
+    <AntdLayout style={{ height: '100vh' }}>
+      <Sider>
+        {import.meta.env.DEVLAKE_TITLE_CUSTOM ? (
+          <h2 style={{ margin: '36px 0', textAlign: 'center', color: '#fff' }}>
+            {import.meta.env.DEVLAKE_TITLE_CUSTOM}
+          </h2>
+        ) : (
+          <Logo style={{ padding: 24 }} />
+        )}
+        <Menu
+          mode="inline"
+          theme="dark"
+          items={menuItems}
+          openKeys={openKeys}
+          selectedKeys={selectedKeys}
+          onClick={({ key }) => navigate(key)}
+          onOpenChange={(keys) => setOpenKeys(keys)}
+        />
+        <div style={{ position: 'absolute', right: 0, bottom: 20, left: 0, 
color: '#fff', textAlign: 'center' }}>
+          {version}
+        </div>
+      </Sider>
+      <AntdLayout style={{ overflowY: 'auto' }}>
+        <Header
+          style={{
+            display: 'flex',
+            justifyContent: 'flex-end',
+            alignItems: 'center',
+            padding: '0 24px',
+            height: 50,
+            background: 'transparent',
+          }}
+        >
+          {headerItems
+            .filter((item) =>
+              import.meta.env.DEVLAKE_COPYRIGHT_HIDE ? !['GitHub', 
'Slack'].includes(item.label) : true,
+            )
+            .map((item, i, arr) => (
+              <ExternalLink key={item.label} link={item.link} style={{ 
display: 'flex', alignItems: 'center' }}>
+                {item.icon}
+                <span style={{ marginLeft: 4 }}>{item.label}</span>
+                {i !== arr.length - 1 && <Divider type="vertical" />}
+              </ExternalLink>
+            ))}
+        </Header>
+        <Content style={{ margin: '16px auto', width: 1188 }}>
+          <Outlet />
+        </Content>
+        {!import.meta.env.DEVLAKE_COPYRIGHT_HIDE && (
+          <Footer>
+            <p style={{ textAlign: 'center' }}>Apache 2.0 License</p>
+          </Footer>
+        )}
+        <CSSTransition in={!!tipsShow} unmountOnExit timeout={300} 
nodeRef={tipsRef} classNames="tips">
+          <S.Tips ref={tipsRef}>
+            <div className="content">
+              {tipsType === 'data-scope-changed' && (
+                <Flex gap="middle">
+                  <Message content="The change of Data Scope(s) will affect 
the metrics of this project. Would you like to recollect the data to get them 
updated?" />
+                  <Button type="primary" loading={operating} 
onClick={handleRunBP}>
+                    Recollect Data
+                  </Button>
+                </Flex>
+              )}
+              {tipsType === 'scope-config-changed' && (
+                <Message
+                  content="Scope Config(s) have been updated. If you would 
like to re-transform or re-collect the data in the related
               project(s), please go to the Project page and do so."
-                  />
-                )}
-              </div>
-              <Tooltip title="Close">
-                <Button shape="circle" ghost icon={<CloseOutlined />} 
onClick={() => dispatch(hideTips())} />
-              </Tooltip>
-            </S.Tips>
-          </CSSTransition>
-        </AntdLayout>
+                />
+              )}
+            </div>
+            <Tooltip title="Close">
+              <Button shape="circle" ghost icon={<CloseOutlined />} 
onClick={() => dispatch(hideTips())} />
+            </Tooltip>
+          </S.Tips>
+        </CSSTransition>
       </AntdLayout>
-    </ConfigProvider>
+    </AntdLayout>
   );
 };

Reply via email to