mirror of
https://github.com/jeffvli/feishin.git
synced 2026-05-09 20:29:36 +02:00
maintain defined order on reorder configurations (#1322)
This commit is contained in:
@@ -25,30 +25,17 @@ export const ArtistSettings = () => {
|
|||||||
artistItems.map((item) => [item.id, item as SortableItem<ArtistItem>]),
|
artistItems.map((item) => [item.id, item as SortableItem<ArtistItem>]),
|
||||||
);
|
);
|
||||||
|
|
||||||
const merged = ARTIST_ITEMS.map(([itemId]) => {
|
const merged = artistItems.map((item) => ({
|
||||||
|
...item,
|
||||||
|
id: item.id as ArtistItem,
|
||||||
|
}));
|
||||||
|
|
||||||
|
ARTIST_ITEMS.forEach(([itemId]) => {
|
||||||
const artistItemId = itemId as ArtistItem;
|
const artistItemId = itemId as ArtistItem;
|
||||||
const existing = settingsMap.get(artistItemId);
|
if (!settingsMap.has(artistItemId)) {
|
||||||
if (existing) {
|
|
||||||
return {
|
|
||||||
...existing,
|
|
||||||
id: artistItemId,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
// Item not in settings, add it as disabled
|
|
||||||
return {
|
|
||||||
disabled: true,
|
|
||||||
id: artistItemId,
|
|
||||||
};
|
|
||||||
});
|
|
||||||
|
|
||||||
// Add any items from settings that aren't in ARTIST_ITEMS (for backwards compatibility)
|
|
||||||
artistItems.forEach((item) => {
|
|
||||||
const existsInArtistItems = ARTIST_ITEMS.some(([itemId]) => itemId === item.id);
|
|
||||||
if (!existsInArtistItems) {
|
|
||||||
merged.push({
|
merged.push({
|
||||||
...item,
|
disabled: true,
|
||||||
id: item.id as ArtistItem,
|
id: artistItemId,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -26,30 +26,17 @@ export const HomeSettings = () => {
|
|||||||
homeItems.map((item) => [item.id, item as SortableItem<HomeItem>]),
|
homeItems.map((item) => [item.id, item as SortableItem<HomeItem>]),
|
||||||
);
|
);
|
||||||
|
|
||||||
const merged = HOME_ITEMS.map(([itemId]) => {
|
const merged = homeItems.map((item) => ({
|
||||||
|
...item,
|
||||||
|
id: item.id as HomeItem,
|
||||||
|
}));
|
||||||
|
|
||||||
|
HOME_ITEMS.forEach(([itemId]) => {
|
||||||
const homeItemId = itemId as HomeItem;
|
const homeItemId = itemId as HomeItem;
|
||||||
const existing = settingsMap.get(homeItemId);
|
if (!settingsMap.has(homeItemId)) {
|
||||||
if (existing) {
|
|
||||||
return {
|
|
||||||
...existing,
|
|
||||||
id: homeItemId,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
// Item not in settings, add it as disabled
|
|
||||||
return {
|
|
||||||
disabled: true,
|
|
||||||
id: homeItemId,
|
|
||||||
};
|
|
||||||
});
|
|
||||||
|
|
||||||
// Add any items from settings that aren't in HOME_ITEMS (for backwards compatibility)
|
|
||||||
homeItems.forEach((item) => {
|
|
||||||
const existsInHomeItems = HOME_ITEMS.some(([itemId]) => itemId === item.id);
|
|
||||||
if (!existsInHomeItems) {
|
|
||||||
merged.push({
|
merged.push({
|
||||||
...item,
|
disabled: true,
|
||||||
id: item.id as HomeItem,
|
id: homeItemId,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -30,32 +30,19 @@ export const SidebarReorder = () => {
|
|||||||
const settingsMap = new Map(sidebarItems.map((item) => [item.id, item]));
|
const settingsMap = new Map(sidebarItems.map((item) => [item.id, item]));
|
||||||
const defaultMap = new Map(defaultSidebarItems.map((item) => [item.id, item]));
|
const defaultMap = new Map(defaultSidebarItems.map((item) => [item.id, item]));
|
||||||
|
|
||||||
const merged = SIDEBAR_ITEMS.map(([itemId]) => {
|
const merged = sidebarItems.map((item) => ({
|
||||||
const existing = settingsMap.get(itemId);
|
...item,
|
||||||
if (existing) {
|
id: item.id,
|
||||||
return {
|
}));
|
||||||
...existing,
|
|
||||||
id: itemId,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
// Item not in settings, get default values and add it as disabled
|
SIDEBAR_ITEMS.forEach(([itemId]) => {
|
||||||
const defaultItem = defaultMap.get(itemId);
|
if (!settingsMap.has(itemId)) {
|
||||||
return {
|
const defaultItem = defaultMap.get(itemId);
|
||||||
disabled: true,
|
|
||||||
id: itemId,
|
|
||||||
label: defaultItem?.label ?? itemId,
|
|
||||||
route: defaultItem?.route ?? '',
|
|
||||||
};
|
|
||||||
});
|
|
||||||
|
|
||||||
// Add any items from settings that aren't in SIDEBAR_ITEMS (for backwards compatibility)
|
|
||||||
sidebarItems.forEach((item) => {
|
|
||||||
const existsInSidebarItems = SIDEBAR_ITEMS.some(([itemId]) => itemId === item.id);
|
|
||||||
if (!existsInSidebarItems) {
|
|
||||||
merged.push({
|
merged.push({
|
||||||
...item,
|
disabled: true,
|
||||||
id: item.id,
|
id: itemId,
|
||||||
|
label: defaultItem?.label ?? itemId,
|
||||||
|
route: defaultItem?.route ?? '',
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user