mirror of
https://github.com/zimplexing/OrionTV.git
synced 2026-06-17 18:33:12 +08:00
feat: integrate settings and authentication stores for improved login status management
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
import { create } from "zustand";
|
import { create } from "zustand";
|
||||||
import Cookies from "@react-native-cookies/cookies";
|
import Cookies from "@react-native-cookies/cookies";
|
||||||
import { api } from "@/services/api";
|
import { api } from "@/services/api";
|
||||||
|
import { useSettingsStore } from "./settingsStore";
|
||||||
|
|
||||||
interface AuthState {
|
interface AuthState {
|
||||||
isLoggedIn: boolean;
|
isLoggedIn: boolean;
|
||||||
@@ -17,6 +18,11 @@ const useAuthStore = create<AuthState>((set) => ({
|
|||||||
showLoginModal: () => set({ isLoginModalVisible: true }),
|
showLoginModal: () => set({ isLoginModalVisible: true }),
|
||||||
hideLoginModal: () => set({ isLoginModalVisible: false }),
|
hideLoginModal: () => set({ isLoginModalVisible: false }),
|
||||||
checkLoginStatus: async () => {
|
checkLoginStatus: async () => {
|
||||||
|
const { apiBaseUrl } = useSettingsStore.getState();
|
||||||
|
if (!apiBaseUrl) {
|
||||||
|
set({ isLoggedIn: false, isLoginModalVisible: false });
|
||||||
|
return;
|
||||||
|
}
|
||||||
try {
|
try {
|
||||||
const { ok } = await api.login();
|
const { ok } = await api.login();
|
||||||
if (ok) {
|
if (ok) {
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ import { create } from 'zustand';
|
|||||||
import { SettingsManager } from '@/services/storage';
|
import { SettingsManager } from '@/services/storage';
|
||||||
import { api, ServerConfig } from '@/services/api';
|
import { api, ServerConfig } from '@/services/api';
|
||||||
import useHomeStore from './homeStore';
|
import useHomeStore from './homeStore';
|
||||||
|
import useAuthStore from './authStore';
|
||||||
|
|
||||||
|
|
||||||
interface SettingsState {
|
interface SettingsState {
|
||||||
@@ -29,7 +30,7 @@ interface SettingsState {
|
|||||||
|
|
||||||
export const useSettingsStore = create<SettingsState>((set, get) => ({
|
export const useSettingsStore = create<SettingsState>((set, get) => ({
|
||||||
apiBaseUrl: '',
|
apiBaseUrl: '',
|
||||||
m3uUrl: 'https://raw.githubusercontent.com/sjnhnp/adblock/refs/heads/main/filtered_http_only_valid.m3u',
|
m3uUrl: '',
|
||||||
liveStreamSources: [],
|
liveStreamSources: [],
|
||||||
remoteInputEnabled: false,
|
remoteInputEnabled: false,
|
||||||
isModalVisible: false,
|
isModalVisible: false,
|
||||||
@@ -75,6 +76,7 @@ export const useSettingsStore = create<SettingsState>((set, get) => ({
|
|||||||
api.setBaseUrl(apiBaseUrl);
|
api.setBaseUrl(apiBaseUrl);
|
||||||
set({ isModalVisible: false });
|
set({ isModalVisible: false });
|
||||||
useHomeStore.getState().fetchInitialData();
|
useHomeStore.getState().fetchInitialData();
|
||||||
|
useAuthStore.getState().checkLoginStatus();
|
||||||
},
|
},
|
||||||
showModal: () => set({ isModalVisible: true }),
|
showModal: () => set({ isModalVisible: true }),
|
||||||
hideModal: () => set({ isModalVisible: false }),
|
hideModal: () => set({ isModalVisible: false }),
|
||||||
|
|||||||
Reference in New Issue
Block a user