fix: use ref not set init value

pull/13892/head
Joel 1 year ago
parent 688a461a5b
commit d062519f60

@ -14,7 +14,7 @@ type FeaturesProviderProps = {
children: React.ReactNode children: React.ReactNode
} & Partial<FeaturesState> } & Partial<FeaturesState>
export const FeaturesProvider = ({ children, ...props }: FeaturesProviderProps) => { export const FeaturesProvider = ({ children, ...props }: FeaturesProviderProps) => {
const storeRef = useRef<FeaturesStore>() const storeRef = useRef<FeaturesStore | undefined>(undefined)
if (!storeRef.current) if (!storeRef.current)
storeRef.current = createFeaturesStore(props) storeRef.current = createFeaturesStore(props)

@ -54,7 +54,7 @@ export const FileContextProvider = ({
value, value,
onChange, onChange,
}: FileProviderProps) => { }: FileProviderProps) => {
const storeRef = useRef<FileStore>() const storeRef = useRef<FileStore | undefined>(undefined)
if (!storeRef.current) if (!storeRef.current)
storeRef.current = createFileStore(value, onChange) storeRef.current = createFileStore(value, onChange)

@ -40,7 +40,7 @@ const Flowchart = (
const prevPrimitiveCode = usePrevious(props.PrimitiveCode) const prevPrimitiveCode = usePrevious(props.PrimitiveCode)
const [isLoading, setIsLoading] = useState(true) const [isLoading, setIsLoading] = useState(true)
const timeRef = useRef<number>() const timeRef = useRef<number>(0)
const [errMsg, setErrMsg] = useState('') const [errMsg, setErrMsg] = useState('')
const [imagePreviewUrl, setImagePreviewUrl] = useState('') const [imagePreviewUrl, setImagePreviewUrl] = useState('')

@ -204,8 +204,8 @@ function CodeGroupPanels({ children, targetCode, ...props }: ICodeGroupPanelsPro
} }
function usePreventLayoutShift() { function usePreventLayoutShift() {
const positionRef = useRef<any>() const positionRef = useRef<any>(undefined)
const rafRef = useRef<any>() const rafRef = useRef<any>(undefined)
useEffect(() => { useEffect(() => {
return () => { return () => {

@ -19,7 +19,7 @@ const CooldownTimer = ({ secondsRemaining, onFinish }: CooldownTimerProps) => {
[currentTime], [currentTime],
) )
const countdownTimeout = useRef<number>(undefined) const countdownTimeout = useRef<number | undefined>(undefined)
const clearCountdown = useCallback(() => { const clearCountdown = useCallback(() => {
if (countdownTimeout.current) { if (countdownTimeout.current) {
window.clearTimeout(countdownTimeout.current) window.clearTimeout(countdownTimeout.current)

@ -24,7 +24,7 @@ import {
getFilesInLogs, getFilesInLogs,
} from '@/app/components/base/file-uploader/utils' } from '@/app/components/base/file-uploader/utils'
export interface IResultProps { export type IResultProps = {
isWorkflow: boolean isWorkflow: boolean
isCallBatchAPI: boolean isCallBatchAPI: boolean
isPC: boolean isPC: boolean
@ -80,14 +80,14 @@ const Result: FC<IResultProps> = ({
}, [controlStopResponding]) }, [controlStopResponding])
const [completionRes, doSetCompletionRes] = useState<any>('') const [completionRes, doSetCompletionRes] = useState<any>('')
const completionResRef = useRef<any>() const completionResRef = useRef<any>(undefined)
const setCompletionRes = (res: any) => { const setCompletionRes = (res: any) => {
completionResRef.current = res completionResRef.current = res
doSetCompletionRes(res) doSetCompletionRes(res)
} }
const getCompletionRes = () => completionResRef.current const getCompletionRes = () => completionResRef.current
const [workflowProcessData, doSetWorkflowProcessData] = useState<WorkflowProcess>() const [workflowProcessData, doSetWorkflowProcessData] = useState<WorkflowProcess>()
const workflowProcessDataRef = useRef<WorkflowProcess>() const workflowProcessDataRef = useRef<WorkflowProcess | undefined>(undefined)
const setWorkflowProcessData = (data: WorkflowProcess) => { const setWorkflowProcessData = (data: WorkflowProcess) => {
workflowProcessDataRef.current = data workflowProcessDataRef.current = data
doSetWorkflowProcessData(data) doSetWorkflowProcessData(data)

@ -11,7 +11,7 @@ type WorkflowProviderProps = {
children: React.ReactNode children: React.ReactNode
} }
export const WorkflowContextProvider = ({ children }: WorkflowProviderProps) => { export const WorkflowContextProvider = ({ children }: WorkflowProviderProps) => {
const storeRef = useRef<WorkflowStore>() const storeRef = useRef<WorkflowStore | undefined>(undefined)
if (!storeRef.current) if (!storeRef.current)
storeRef.current = createWorkflowStore() storeRef.current = createWorkflowStore()

@ -43,7 +43,7 @@ const defaultSubcribeOption: UseSubcribeOption = {
function useMitt<Events extends _Events>( function useMitt<Events extends _Events>(
mitt?: Emitter<Events>, mitt?: Emitter<Events>,
): UseMittReturn<Events> { ): UseMittReturn<Events> {
const emitterRef = useRef<Emitter<Events>>() const emitterRef = useRef<Emitter<Events> | undefined>(undefined)
if (!emitterRef.current) if (!emitterRef.current)
emitterRef.current = mitt ?? create<Events>() emitterRef.current = mitt ?? create<Events>()

Loading…
Cancel
Save