feat: macOS menu enhancement (#1903)

This commit is contained in:
York
2026-04-05 08:35:30 +08:00
committed by GitHub
parent a32fed3bcf
commit d60ed0a793
6 changed files with 483 additions and 28 deletions
+9
View File
@@ -92,6 +92,7 @@ interface GroupedQueue {
}
interface State {
hydrated: boolean;
player: {
crossfadeDuration: number;
crossfadeStyle: CrossfadeStyle;
@@ -297,6 +298,7 @@ function regenerateShuffledIndexesIfNeeded(state: {
}
const initialState: State = {
hydrated: false,
player: {
crossfadeDuration: 5,
crossfadeStyle: CrossfadeStyle.EQUAL_POWER,
@@ -1564,6 +1566,9 @@ export const usePlayerStoreBase = createWithEqualityFn<PlayerState>()(
return persistedState as Partial<PlayerState>;
},
name: 'player-store',
onRehydrateStorage: () => () => {
usePlayerStoreBase.setState({ hydrated: true });
},
partialize: (state) => {
const shouldRestorePlayQueue = useSettingsStore.getState().general.resume;
@@ -2025,6 +2030,10 @@ export const usePlayerStatus = () => {
return usePlayerStoreBase((state) => state.player.status);
};
export const usePlayerHydrated = () => {
return usePlayerStoreBase((state) => state.hydrated);
};
export const usePlayerVolume = () => {
return usePlayerStoreBase((state) => state.player.volume);
};