Skip to content

Commit 801308b

Browse files
authored
Merge pull request #145 from PRO-Robotech/feature/dev
remove flickering | currenttags parser in sidebars
2 parents 3ec22e8 + 7992494 commit 801308b

File tree

30 files changed

+226
-277
lines changed

30 files changed

+226
-277
lines changed

package-lock.json

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
"@ant-design/icons": "5.6.0",
2121
"@monaco-editor/react": "4.6.0",
2222
"@originjs/vite-plugin-federation": "1.3.6",
23-
"@prorobotech/openapi-k8s-toolkit": "0.0.1-alpha.136",
23+
"@prorobotech/openapi-k8s-toolkit": "0.0.1-alpha.137",
2424
"@readme/openapi-parser": "4.0.0",
2525
"@reduxjs/toolkit": "2.2.5",
2626
"@tanstack/react-query": "5.62.2",

src/App.tsx

Lines changed: 72 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import {
3030
} from 'pages'
3131
import { getBasePrefix } from 'utils/getBaseprefix'
3232
import { colorsLight, colorsDark, sizes } from 'constants/colors'
33+
import { MainLayout } from 'templates/MainLayout'
3334

3435
type TAppProps = {
3536
isFederation?: boolean
@@ -54,87 +55,77 @@ export const App: FC<TAppProps> = ({ isFederation, forcedTheme }) => {
5455

5556
const renderRoutes = (prefix = '') => (
5657
<Routes>
57-
<Route path={`${prefix}/`} element={<MainPage forcedTheme={forcedTheme} />} />
58-
<Route path={`${prefix}/clusters`} element={<ListClustersPage forcedTheme={forcedTheme} />} />
59-
<Route path={`${prefix}/clusters/:clusterName`} element={<ListProjectsPage forcedTheme={forcedTheme} />} />
60-
<Route path={`${prefix}/inside/`} element={<MainPage forcedTheme={forcedTheme} />} />
61-
<Route
62-
path={`${prefix}/clusters/:clusterName/projects/:namespace`}
63-
element={<ProjectInfoPage forcedTheme={forcedTheme} />}
64-
/>
65-
<Route
66-
path={`${prefix}/inside/clusters`}
67-
element={<ListInsideClustersAndNsPage forcedTheme={forcedTheme} inside />}
68-
/>
69-
<Route
70-
path={`${prefix}/inside/:clusterName/:namespace?/apis`}
71-
element={<ListInsideApiPage forcedTheme={forcedTheme} inside />}
72-
/>
73-
<Route
74-
path={`${prefix}/inside/:clusterName/:namespace?/crds-by-api/:apiGroup/:apiVersion/:apiExtensionVersion`}
75-
element={<ListInsideCrdByApiGroupPage forcedTheme={forcedTheme} inside />}
76-
/>
77-
<Route
78-
path={`${prefix}/inside/:clusterName/:namespace?/apis-by-api/:apiGroup/:apiVersion/`}
79-
element={<ListInsideApiByApiGroupPage forcedTheme={forcedTheme} inside />}
80-
/>
81-
<Route
82-
path={`${prefix}/:clusterName/:namespace?/:syntheticProject?/crd-table/:apiGroup/:apiVersion/:apiExtensionVersion/:crdName`}
83-
element={<TableCrdPage forcedTheme={forcedTheme} />}
84-
/>
85-
<Route
86-
path={`${prefix}/:clusterName/:namespace?/:syntheticProject?/api-table/:apiGroup/:apiVersion/:typeName`}
87-
element={<TableApiPage forcedTheme={forcedTheme} />}
88-
/>
89-
<Route
90-
path={`${prefix}/:clusterName/:namespace?/:syntheticProject?/builtin-table/:typeName`}
91-
element={<TableBuiltinPage forcedTheme={forcedTheme} />}
92-
/>
93-
<Route
94-
path={`${prefix}/:clusterName/:namespace?/:syntheticProject?/forms/builtin/:apiVersion/:typeName/:entryName?/`}
95-
element={<FormBuiltinPage forcedTheme={forcedTheme} />}
96-
/>
97-
<Route
98-
path={`${prefix}/:clusterName/:namespace?/:syntheticProject?/forms/apis/:apiGroup/:apiVersion/:typeName/:entryName?/`}
99-
element={<FormApiPage forcedTheme={forcedTheme} />}
100-
/>
101-
<Route
102-
path={`${prefix}/:clusterName/:namespace?/:syntheticProject?/forms/crds/:apiGroup/:apiVersion/:typeName/:entryName?/`}
103-
element={<FormCrdPage forcedTheme={forcedTheme} />}
104-
/>
105-
<Route
106-
path={`${prefix}/inside/:clusterName/:namespace?/:syntheticProject?/crd-table/:apiGroup/:apiVersion/:apiExtensionVersion/:crdName`}
107-
element={<TableCrdPage forcedTheme={forcedTheme} inside />}
108-
/>
109-
<Route
110-
path={`${prefix}/inside/:clusterName/:namespace?/:syntheticProject?/api-table/:apiGroup/:apiVersion/:typeName`}
111-
element={<TableApiPage forcedTheme={forcedTheme} inside />}
112-
/>
113-
<Route
114-
path={`${prefix}/inside/:clusterName/:namespace?/:syntheticProject?/builtin-table/:typeName`}
115-
element={<TableBuiltinPage forcedTheme={forcedTheme} inside />}
116-
/>
117-
<Route
118-
path={`${prefix}/inside/:clusterName/:namespace?/:syntheticProject?/forms/builtin/:apiVersion/:typeName/:entryName?/`}
119-
element={<FormBuiltinPage forcedTheme={forcedTheme} inside />}
120-
/>
121-
<Route
122-
path={`${prefix}/inside/:clusterName/:namespace?/:syntheticProject?/forms/apis/:apiGroup/:apiVersion/:typeName/:entryName?/`}
123-
element={<FormApiPage forcedTheme={forcedTheme} inside />}
124-
/>
125-
<Route
126-
path={`${prefix}/inside/:clusterName/:namespace?/:syntheticProject?/forms/crds/:apiGroup/:apiVersion/:typeName/:entryName?/`}
127-
element={<FormCrdPage forcedTheme={forcedTheme} inside />}
128-
/>
129-
<Route
130-
path={`${prefix}/:clusterName/:namespace?/:syntheticProject?/factory/:key/*`}
131-
element={<FactoryPage forcedTheme={forcedTheme} />}
132-
/>
133-
<Route
134-
path={`${prefix}/:clusterName/:namespace?/:syntheticProject?/search/*`}
135-
element={<SearchPage forcedTheme={forcedTheme} />}
136-
/>
137-
<Route path={`${prefix}/factory-admin/*`} element={<FactoryAdminPage />} />
58+
<Route element={<MainLayout forcedTheme={forcedTheme} />}>
59+
<Route path={`${prefix}/`} element={<MainPage />} />
60+
<Route path={`${prefix}/clusters`} element={<ListClustersPage />} />
61+
<Route path={`${prefix}/clusters/:clusterName`} element={<ListProjectsPage />} />
62+
<Route path={`${prefix}/inside/`} element={<MainPage />} />
63+
<Route path={`${prefix}/clusters/:clusterName/projects/:namespace`} element={<ProjectInfoPage />} />
64+
<Route path={`${prefix}/inside/clusters`} element={<ListInsideClustersAndNsPage inside />} />
65+
<Route path={`${prefix}/inside/:clusterName/:namespace?/apis`} element={<ListInsideApiPage inside />} />
66+
<Route
67+
path={`${prefix}/inside/:clusterName/:namespace?/crds-by-api/:apiGroup/:apiVersion/:apiExtensionVersion`}
68+
element={<ListInsideCrdByApiGroupPage inside />}
69+
/>
70+
<Route
71+
path={`${prefix}/inside/:clusterName/:namespace?/apis-by-api/:apiGroup/:apiVersion/`}
72+
element={<ListInsideApiByApiGroupPage inside />}
73+
/>
74+
<Route
75+
path={`${prefix}/:clusterName/:namespace?/:syntheticProject?/crd-table/:apiGroup/:apiVersion/:apiExtensionVersion/:crdName`}
76+
element={<TableCrdPage />}
77+
/>
78+
<Route
79+
path={`${prefix}/:clusterName/:namespace?/:syntheticProject?/api-table/:apiGroup/:apiVersion/:typeName`}
80+
element={<TableApiPage />}
81+
/>
82+
<Route
83+
path={`${prefix}/:clusterName/:namespace?/:syntheticProject?/builtin-table/:typeName`}
84+
element={<TableBuiltinPage />}
85+
/>
86+
<Route
87+
path={`${prefix}/:clusterName/:namespace?/:syntheticProject?/forms/builtin/:apiVersion/:typeName/:entryName?/`}
88+
element={<FormBuiltinPage />}
89+
/>
90+
<Route
91+
path={`${prefix}/:clusterName/:namespace?/:syntheticProject?/forms/apis/:apiGroup/:apiVersion/:typeName/:entryName?/`}
92+
element={<FormApiPage />}
93+
/>
94+
<Route
95+
path={`${prefix}/:clusterName/:namespace?/:syntheticProject?/forms/crds/:apiGroup/:apiVersion/:typeName/:entryName?/`}
96+
element={<FormCrdPage />}
97+
/>
98+
<Route
99+
path={`${prefix}/inside/:clusterName/:namespace?/:syntheticProject?/crd-table/:apiGroup/:apiVersion/:apiExtensionVersion/:crdName`}
100+
element={<TableCrdPage inside />}
101+
/>
102+
<Route
103+
path={`${prefix}/inside/:clusterName/:namespace?/:syntheticProject?/api-table/:apiGroup/:apiVersion/:typeName`}
104+
element={<TableApiPage inside />}
105+
/>
106+
<Route
107+
path={`${prefix}/inside/:clusterName/:namespace?/:syntheticProject?/builtin-table/:typeName`}
108+
element={<TableBuiltinPage inside />}
109+
/>
110+
<Route
111+
path={`${prefix}/inside/:clusterName/:namespace?/:syntheticProject?/forms/builtin/:apiVersion/:typeName/:entryName?/`}
112+
element={<FormBuiltinPage inside />}
113+
/>
114+
<Route
115+
path={`${prefix}/inside/:clusterName/:namespace?/:syntheticProject?/forms/apis/:apiGroup/:apiVersion/:typeName/:entryName?/`}
116+
element={<FormApiPage inside />}
117+
/>
118+
<Route
119+
path={`${prefix}/inside/:clusterName/:namespace?/:syntheticProject?/forms/crds/:apiGroup/:apiVersion/:typeName/:entryName?/`}
120+
element={<FormCrdPage inside />}
121+
/>
122+
<Route
123+
path={`${prefix}/:clusterName/:namespace?/:syntheticProject?/factory/:key/*`}
124+
element={<FactoryPage />}
125+
/>
126+
<Route path={`${prefix}/:clusterName/:namespace?/:syntheticProject?/search/*`} element={<SearchPage />} />
127+
<Route path={`${prefix}/factory-admin/*`} element={<FactoryAdminPage />} />
128+
</Route>
138129
</Routes>
139130
)
140131

src/components/organisms/Header/organisms/User/User.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ export const User: FC = () => {
2525
// },
2626
{
2727
key: '2',
28-
label: <div onClick={() => navigate(`${baseprefix}/inside`)}>Inside</div>,
28+
label: <div onClick={() => navigate(`${baseprefix}/inside/clusters`)}>Inside</div>,
2929
},
3030
{
3131
key: '3',

src/components/organisms/HeaderSecond/organisms/SelectorCluster/SelectorCluster.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ export const SelectorCluster: FC<TSelectorClusterProps> = ({ clusterName }) => {
3838
<Flex gap={18} justify="start" align="center">
3939
<Typography.Text>Cluster: </Typography.Text>
4040
<EntrySelect
41-
placeholder="Cluster"
41+
placeholder="Select Cluster"
4242
options={clustersInSidebar}
4343
value={selectedClusterName}
4444
onChange={handleClusterChange}

src/components/organisms/HeaderSecond/organisms/SelectorClusterInside/SelectorClusterInside.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ export const SelectorClusterInside: FC<TSelectorClusterInsideProps> = ({ cluster
3636
<Flex gap={18} justify="start" align="center">
3737
<Typography.Text>Cluster: </Typography.Text>
3838
<EntrySelect
39-
placeholder="Cluster"
39+
placeholder="Select Cluster"
4040
options={clustersInSidebar}
4141
value={selectedClusterName}
4242
onChange={handleClusterChange}

src/components/organisms/HeaderSecond/organisms/SelectorInside/SelectorInside.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ export const SelectorInside: FC<TSelectorInsideProps> = ({ clusterName, namespac
1414
const navigate = useNavigate()
1515
const params = useParams()
1616

17-
const [selectedClusterName, setSelectedClusterName] = useState(clusterName)
18-
const [selectedNamespace, setSelectedNamespace] = useState(namespace)
17+
const [selectedClusterName, setSelectedClusterName] = useState<string | undefined>(clusterName)
18+
const [selectedNamespace, setSelectedNamespace] = useState<string | undefined>(namespace)
1919

2020
// const { namespacesInSidebar, clustersInSidebar } = useNavSelectorInside(selectedClusterName)
2121
const { namespacesInSidebar } = useNavSelectorInside(selectedClusterName)

src/components/organisms/ListInsideClusterAndNs/ListInsideClusterAndNs.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,10 @@ export const ListInsideClusterAndNs: FC = () => {
1818
const [selectedNamespace, setSelectedNamespace] = useState<string>()
1919

2020
const namespacesData = useBuiltinResources({
21-
clusterName: cluster,
21+
clusterName: selectedCluster || '',
2222
typeName: 'namespaces',
2323
limit: null,
24+
isEnabled: selectedCluster !== undefined,
2425
})
2526

2627
return (

src/hooks/useNavSelector/useNavSelector.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ export const useNavSelector = (clusterName?: string, projectName?: string) => {
6666
apiVersion: BASE_PROJECTS_VERSION,
6767
typeName: BASE_PROJECTS_RESOURCE_NAME,
6868
limit: null,
69+
isEnabled: clusterName !== undefined,
6970
})
7071

7172
const { data: instances, isSuccess: allInstancesLoadingSuccess } = useApiResources({
@@ -75,6 +76,7 @@ export const useNavSelector = (clusterName?: string, projectName?: string) => {
7576
apiVersion: BASE_INSTANCES_VERSION,
7677
typeName: BASE_INSTANCES_RESOURCE_NAME,
7778
limit: null,
79+
isEnabled: clusterName !== undefined,
7880
})
7981

8082
const clustersInSidebar = clusterList ? clusterList.map(mappedClusterToOptionInSidebar) : []

src/hooks/useNavSelectorInside.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ export const useNavSelectorInside = (clusterName?: string) => {
1919
clusterName: clusterName || '',
2020
typeName: 'namespaces',
2121
limit: null,
22+
isEnabled: Boolean(clusterName),
2223
})
2324

2425
const clustersInSidebar = clusterList ? clusterList.map(mappedClusterToOptionInSidebar) : []

0 commit comments

Comments
 (0)