| 1234567891011121314151617181920212223242526272829303132 |
- import { useContext, useEffect } from 'react';
- import { useLocation } from 'react-router-dom';
- import { StatusContext } from '../context/Status';
- /**
- * 自定义Hook:检查系统setup状态并进行重定向
- * @param {Object} options - 配置选项
- * @param {boolean} options.autoRedirect - 是否自动重定向,默认true
- * @param {string} options.setupPath - setup页面路径,默认'/setup'
- * @returns {Object} 返回setup状态信息
- */
- export function useSetupCheck(options = {}) {
- const { autoRedirect = true, setupPath = '/setup' } = options;
- const [statusState] = useContext(StatusContext);
- const location = useLocation();
- const isSetupComplete = statusState?.status?.setup !== false;
- const needsSetup = !isSetupComplete && location.pathname !== setupPath;
- useEffect(() => {
- if (autoRedirect && needsSetup) {
- window.location.href = setupPath;
- }
- }, [autoRedirect, needsSetup, setupPath]);
- return {
- isSetupComplete,
- needsSetup,
- statusState,
- currentPath: location.pathname
- };
- }
|