mirror of
https://github.com/zimplexing/OrionTV.git
synced 2026-02-04 03:36:29 +08:00
- Added login/logout buttons to the HomeScreen and SettingsScreen. - Integrated authentication state management using Zustand and cookies. - Updated API to support username and password for login. - Enhanced PlayScreen to handle video playback based on user authentication. - Created a new detailStore to manage video details and sources. - Refactored playerStore to utilize detailStore for episode management. - Added sourceStore to manage video source toggling. - Updated settingsStore to fetch server configuration. - Improved error handling and user feedback with Toast notifications. - Cleaned up unused code and optimized imports across components.
24 lines
819 B
TypeScript
24 lines
819 B
TypeScript
import { create } from "zustand";
|
|
import { useSettingsStore } from "@/stores/settingsStore";
|
|
import useDetailStore, { sourcesSelector } from "./detailStore";
|
|
|
|
interface SourceState {
|
|
toggleResourceEnabled: (resourceKey: string) => void;
|
|
}
|
|
|
|
const useSourceStore = create<SourceState>((set, get) => ({
|
|
toggleResourceEnabled: (resourceKey: string) => {
|
|
const { videoSource, setVideoSource } = useSettingsStore.getState();
|
|
const isEnabled = videoSource.sources[resourceKey];
|
|
const newEnabledSources = { ...videoSource.sources, [resourceKey]: !isEnabled };
|
|
|
|
setVideoSource({
|
|
enabledAll: Object.values(newEnabledSources).every((enabled) => enabled),
|
|
sources: newEnabledSources,
|
|
});
|
|
},
|
|
}));
|
|
|
|
export const useSources = () => useDetailStore(sourcesSelector);
|
|
|
|
export default useSourceStore; |