diff --git a/web/src/ui/settings/SettingsView.css b/web/src/ui/settings/SettingsView.css index 93f7dde..8791fa2 100644 --- a/web/src/ui/settings/SettingsView.css +++ b/web/src/ui/settings/SettingsView.css @@ -14,8 +14,23 @@ div.settings-view { table { text-align: left; + tr { + height: 2.5rem; + } + div.preference { display: flex; + + &.select-preference > select { + padding: .25rem; + } + + &.string-preference > input { + border: 1px solid var(--border-color); + padding: .25rem; + /* TODO make this less hacky */ + width: 8rem; + } } } diff --git a/web/src/ui/settings/SettingsView.tsx b/web/src/ui/settings/SettingsView.tsx index 814919a..afc9afa 100644 --- a/web/src/ui/settings/SettingsView.tsx +++ b/web/src/ui/settings/SettingsView.tsx @@ -54,6 +54,16 @@ const BooleanPreferenceCell = ({ context, name, setPref, value, inheritedValue } } +const TextPreferenceCell = ({ context, name, setPref, value, inheritedValue }: PreferenceCellProps) => { + const onChange = useCallback((evt: React.ChangeEvent) => { + setPref(context, name, evt.target.value) + }, [setPref, context, name]) + return
+ + {useRemover(context, setPref, name, value)} +
+} + const SelectPreferenceCell = ({ context, name, pref, setPref, value, inheritedValue }: PreferenceCellProps) => { const onChange = useCallback((evt: React.ChangeEvent) => { setPref(context, name, evt.target.value) @@ -83,11 +93,16 @@ interface PreferenceRowProps { roomLocal?: PreferenceValueType } +const customUIPrefs = new Set([ + "custom_css", + "custom_notification_sound", +] as (keyof Preferences)[]) + const PreferenceRow = ({ name, pref, setPref, globalServer, globalLocal, roomServer, roomLocal, }: PreferenceRowProps) => { const prefType = typeof pref.defaultValue - if (prefType !== "boolean" && !pref.allowedValues) { + if (customUIPrefs.has(name)) { return null } const makeContentCell = ( @@ -104,7 +119,7 @@ const PreferenceRow = ({ value={val as boolean | undefined} inheritedValue={inheritedVal as boolean} /> - } else if (typeof prefType === "string" && pref.allowedValues) { + } else if (pref.allowedValues) { return + } else if (prefType === "string") { + return } + value={val as string | undefined} + inheritedValue={inheritedVal as string} + /> } else { return null }