The weeb for the next gen discord boat - Wamellow wamellow.com
bot discord
3
fork

Configure Feed

Select the types of activity you want to include in your feed.

fix inputs

Luna 521ed370 361b933d

+20 -6
+2 -2
components/inputs/dumb-text-input.tsx
··· 92 92 setValue(e.target.value || null); 93 93 } 94 94 }} 95 - value={dataName ? JSON.parse(value)[dataName] : value} 95 + value={(dataName ? JSON.parse(value)[dataName] : value) || ""} 96 96 disabled={disabled} 97 97 rows={2} 98 98 maxLength={max || Infinity} ··· 108 108 setValue(e.target.value || null); 109 109 } 110 110 }} 111 - value={dataName ? JSON.parse(value)[dataName] : value} 111 + value={(dataName ? JSON.parse(value)[dataName] : value) || ""} 112 112 disabled={disabled} 113 113 type={type} 114 114 maxLength={max || Infinity}
+18 -4
components/inputs/multi-select-menu.tsx
··· 17 17 className?: string; 18 18 19 19 name: string; 20 - url: string; 21 - dataName: string; 20 + url?: string; 21 + dataName?: string; 22 22 items: { icon?: React.ReactNode; name: string; value: string | number; error?: string; color?: number; }[] | undefined; 23 23 disabled?: boolean; 24 24 max?: number; 25 25 description?: string; 26 26 defaultState?: (string | number)[]; 27 + 28 + onSave?: (options: { name: string; value: string | number | null; error?: string }[]) => void; 27 29 }; 28 30 29 31 ··· 36 38 disabled, 37 39 max = Infinity, 38 40 description, 39 - defaultState = [] 41 + defaultState, 42 + onSave 40 43 }: Props) { 41 44 const [state, setState] = useState<State>(State.Idle); 42 45 const [error, setError] = useState<string | null>(null); ··· 46 49 const [values, setValues] = useState<{ icon?: React.ReactNode; name: string; value: string | number; error?: string; color?: number; }[]>([]); 47 50 48 51 useEffect(() => { 52 + if (!defaultState) return; 53 + 49 54 setValues(items.filter((i) => defaultState?.includes(i.value))); 50 55 setDefaultalue(defaultState); 51 - }, [defaultState]); 56 + }, [defaultState, items]); 52 57 53 58 useEffect(() => { 54 59 setError(null); ··· 57 62 setState(State.Idle); 58 63 return; 59 64 } 65 + 66 + if (!url) { 67 + if (!onSave) throw new Error("Warning: <MultiSelectMenu.onSave> must be defined when not using <MultiSelectMenu.url>."); 68 + onSave(values); 69 + setState(State.Idle); 70 + return; 71 + } 72 + 73 + if (!dataName) throw new Error("Warning: <MultiSelectMenu.dataName> must be defined when using <MultiSelectMenu.url>."); 60 74 61 75 setState(State.Loading); 62 76