mirror of
https://github.com/Boof2015/prism.git
synced 2026-08-19 20:09:43 +02:00
add back refresh button for themes
This commit is contained in:
@@ -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"
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user