From 9cee56e379a9520dd8c30f34b10b0a02ca105ca9 Mon Sep 17 00:00:00 2001 From: Elvyra <88881326+EepyElvyra@users.noreply.github.com> Date: Thu, 23 Jan 2025 18:06:16 +0100 Subject: [PATCH] minor fixes - switch from indices to IDs - make indexes for the channel view unique - Fix guilds shuffling around in the channel view by sorting them alphabetically - Fix possibility to add elements twice from search modal by allowing to hide already added items from the search modal - Remove invalid channels instead of just not rendering them. --- .../components/SettingArrayComponent.tsx | 85 ++++++++++++------- src/components/SearchModal.tsx | 6 +- 2 files changed, 56 insertions(+), 35 deletions(-) diff --git a/src/components/PluginSettings/components/SettingArrayComponent.tsx b/src/components/PluginSettings/components/SettingArrayComponent.tsx index 5ccd2902c..bdaa6c4e0 100644 --- a/src/components/PluginSettings/components/SettingArrayComponent.tsx +++ b/src/components/PluginSettings/components/SettingArrayComponent.tsx @@ -68,7 +68,7 @@ export function SettingArrayComponent({ id }: ISettingElementProps) { const [error, setError] = useState(null); - const [items, setItems] = useState([]); + const [items, setItems] = useState(pluginSettings[id] || []); const [text, setText] = useState(""); useEffect(() => { @@ -87,16 +87,12 @@ export function SettingArrayComponent({ useEffect(() => { pluginSettings[id] = items; onChange(items); - }, [items, pluginSettings, id]); + }, [items]); useEffect(() => { onError(error !== null); }, [error]); - if (items.length === 0 && pluginSettings[id].length !== 0) { - setItems(pluginSettings[id]); - } - function openSearchModal(val?: string) { return openModal(modalProps => ( setItems([...items, ...values.map(v => v.id)])} + excludeIds={items} /> )); } - const removeButton = (index: number) => { + const removeButton = (id: string) => { return (