Skip to content

Commit 2bb0f50

Browse files
authored
Merge pull request #225 from dgageot/better-2groups
Better 2groups
2 parents 91a6555 + a6c9c77 commit 2bb0f50

File tree

2 files changed

+18
-37
lines changed

2 files changed

+18
-37
lines changed

src/extension/ui/src/components/CatalogGrid.tsx

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,6 @@ export const CatalogGrid: React.FC<CatalogGridProps> = ({ appProps }) => {
4040

4141
const [search, setSearch] = useState<string>('');
4242
const [tab, setTab] = useState<number>(0);
43-
const [showMine, setShowMine] = useState<boolean>(
44-
localStorage.getItem('showMine') === 'true'
45-
);
4643
const [openMenus, setOpenMenus] = useState<{
4744
[key: string]: { anchorEl: HTMLElement | null; open: boolean };
4845
}>({
@@ -174,21 +171,6 @@ export const CatalogGrid: React.FC<CatalogGridProps> = ({ appProps }) => {
174171
>
175172
<SwapVert fontSize="small" />
176173
</IconButton>
177-
<FormControlLabel
178-
control={
179-
<Switch
180-
checked={showMine}
181-
onChange={(e) => {
182-
setShowMine(e.target.checked);
183-
localStorage.setItem(
184-
'showMine',
185-
e.target.checked.toString()
186-
);
187-
}}
188-
/>
189-
}
190-
label="Show only enabled tools"
191-
/>
192174
</Stack>
193175
</FormGroup>
194176

@@ -246,7 +228,6 @@ export const CatalogGrid: React.FC<CatalogGridProps> = ({ appProps }) => {
246228
{tab === 0 && (
247229
<ToolCatalog
248230
search={search}
249-
showMine={showMine}
250231
client={client}
251232
sort={sort}
252233
/>

src/extension/ui/src/components/tabs/ToolCatalog.tsx

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,36 +2,30 @@ import { v1 } from '@docker/extension-api-client-types';
22
import KeyboardArrowDownIcon from '@mui/icons-material/KeyboardArrowDown';
33
import KeyboardArrowRightIcon from '@mui/icons-material/KeyboardArrowRight';
44
import { Collapse, Grid2, Typography } from '@mui/material';
5-
import React, { useMemo, useState } from 'react';
5+
import React, { useEffect, useMemo, useState } from 'react';
66
import { CATALOG_LAYOUT_SX } from '../../Constants';
77
import { useCatalogAll } from '../../queries/useCatalog';
88
import Tile from '../tile/Index';
99

1010
interface ToolCatalogProps {
1111
search: string;
1212
client: v1.DockerDesktopClient;
13-
showMine: boolean;
1413
sort: 'name-asc' | 'name-desc';
1514
}
1615

1716
const ToolCatalog: React.FC<ToolCatalogProps> = ({
1817
search,
1918
client,
20-
showMine,
2119
sort,
2220
}) => {
2321
const { catalogItems, registryLoading } = useCatalogAll(client);
24-
const [expandedEnabled, setExpandedEnabled] = useState(true);
25-
const [expandedNotEnabled, setExpandedNotEnabled] = useState(true);
22+
const [expandedEnabled, setExpandedEnabled] = useState(localStorage.getItem('expandedEnabled') !== 'false');
23+
const [expandedNotEnabled, setExpandedNotEnabled] = useState(localStorage.getItem('expandedNotEnabled') !== 'false');
2624

2725
// Memoize the filtered catalog items to prevent unnecessary recalculations
2826
const result = useMemo(() => {
2927
const filteredItems = catalogItems.filter((item) => {
30-
const matchesSearch = item.name
31-
.toLowerCase()
32-
.includes(search.toLowerCase());
33-
const hideBecauseItsNotMine = showMine && !item.registered;
34-
return matchesSearch && !hideBecauseItsNotMine;
28+
return item.name.toLowerCase().includes(search.toLowerCase());
3529
});
3630

3731
return sort === 'name-asc'
@@ -43,19 +37,21 @@ const ToolCatalog: React.FC<ToolCatalogProps> = ({
4337
return b.name.localeCompare(a.name);
4438
})
4539
: filteredItems;
46-
}, [catalogItems, search, showMine, sort]);
47-
48-
40+
}, [catalogItems, search, sort]);
4941

5042
return (
5143
<>
5244
<Typography
5345
variant='subtitle2'
54-
sx={{ color: "text.secondary", display: "flex", alignItems: "center", cursor: "pointer" }}
55-
onClick={() => setExpandedEnabled(!expandedEnabled)}>
46+
sx={{ color: "text.secondary", display: "flex", alignItems: "center", cursor: "pointer", width: 'fit-content' }}
47+
onClick={() => {
48+
const newExpanded = !expandedEnabled
49+
setExpandedEnabled(newExpanded);
50+
localStorage.setItem('expandedEnabled', JSON.stringify(newExpanded));
51+
}}>
5652
Enabled tools
5753
{expandedEnabled ? <KeyboardArrowDownIcon fontSize="small" /> : <KeyboardArrowRightIcon fontSize="small" />}
58-
</Typography>
54+
</Typography >
5955

6056
<Collapse in={expandedEnabled}>
6157
<Grid2 container spacing={1} sx={CATALOG_LAYOUT_SX}>
@@ -75,8 +71,12 @@ const ToolCatalog: React.FC<ToolCatalogProps> = ({
7571

7672
<Typography
7773
variant='subtitle2'
78-
sx={{ color: "text.secondary", display: "flex", alignItems: "center", cursor: "pointer" }}
79-
onClick={() => setExpandedNotEnabled(!expandedNotEnabled)}>
74+
sx={{ color: "text.secondary", display: "flex", alignItems: "center", cursor: "pointer", width: 'fit-content' }}
75+
onClick={() => {
76+
const newExpanded = !expandedNotEnabled
77+
setExpandedNotEnabled(newExpanded);
78+
localStorage.setItem('expandedNotEnabled', JSON.stringify(newExpanded));
79+
}}>
8080
All the tools
8181
{expandedNotEnabled ? <KeyboardArrowDownIcon fontSize="small" /> : <KeyboardArrowRightIcon fontSize="small" />}
8282
</Typography>

0 commit comments

Comments
 (0)