add back refresh button for themes

This commit is contained in:
Boof2015
2026-04-05 22:08:52 -04:00
parent 589e1466d9
commit da1218de38
2 changed files with 38 additions and 1 deletions
+31
View File
@@ -49,6 +49,7 @@ export default function BottomBar({ onClose, onHeightChange }: BottomBarProps):
const rootRef = useRef<HTMLDivElement | null>(null) const rootRef = useRef<HTMLDivElement | null>(null)
const [astraBaseUrlInput, setAstraBaseUrlInput] = useState('') const [astraBaseUrlInput, setAstraBaseUrlInput] = useState('')
const [astraTokenInput, setAstraTokenInput] = useState('') const [astraTokenInput, setAstraTokenInput] = useState('')
const [isRefreshingThemes, setIsRefreshingThemes] = useState(false)
const hiddenScopes = useSettingsStore((s) => s.hiddenScopes) const hiddenScopes = useSettingsStore((s) => s.hiddenScopes)
const scopeOrder = useSettingsStore((s) => s.scopeOrder) const scopeOrder = useSettingsStore((s) => s.scopeOrder)
@@ -61,6 +62,7 @@ export default function BottomBar({ onClose, onHeightChange }: BottomBarProps):
themes, themes,
activeThemeId, activeThemeId,
loadTheme, loadTheme,
reloadThemes,
showThemesFolder, showThemesFolder,
} = useThemeStore() } = useThemeStore()
const astraState = useAstraStore((s) => s.integrationState) const astraState = useAstraStore((s) => s.integrationState)
@@ -215,6 +217,25 @@ export default function BottomBar({ onClose, onHeightChange }: BottomBarProps):
} }
} }
const handleReloadThemes = async (): Promise<void> => {
if (isRefreshingThemes) {
return
}
setIsRefreshingThemes(true)
try {
await reloadThemes()
} catch (error) {
showBanner({
tone: 'error',
message: getErrorMessage(error, 'Could not refresh themes.'),
actions: [],
})
} finally {
setIsRefreshingThemes(false)
}
}
const handleRailWheel = (event: WheelEvent<HTMLDivElement>): void => { const handleRailWheel = (event: WheelEvent<HTMLDivElement>): void => {
const railElement = event.currentTarget const railElement = event.currentTarget
const target = event.target const target = event.target
@@ -295,6 +316,16 @@ export default function BottomBar({ onClose, onHeightChange }: BottomBarProps):
</option> </option>
))} ))}
</ThemedSelect> </ThemedSelect>
<button
type="button"
className="settings-chip"
onClick={() => {
void handleReloadThemes()
}}
disabled={isRefreshingThemes}
>
{isRefreshingThemes ? 'Refreshing...' : 'Refresh'}
</button>
<button <button
type="button" type="button"
className="settings-chip" className="settings-chip"
+7 -1
View File
@@ -1258,12 +1258,18 @@ select {
background-color 140ms ease; background-color 140ms ease;
} }
.settings-chip:hover { .settings-chip:hover:not(:disabled) {
color: var(--control-text); color: var(--control-text);
border-color: var(--control-border-active); border-color: var(--control-border-active);
background: var(--control-bg-hover); background: var(--control-bg-hover);
} }
.settings-chip:disabled {
color: var(--text-muted);
cursor: default;
opacity: 0.72;
}
.settings-chip.is-active { .settings-chip.is-active {
color: var(--control-text); color: var(--control-text);
border-color: var(--control-border-active); border-color: var(--control-border-active);