Import AITURK IDE 1.0.0-beta.1 from Hermes 63279301; preserve MIT license
This commit is contained in:
commit
03634b1ca3
11340 files changed
+3442369
No files matched your search
@@ -0,0 +1,25 @@
|
||||
import { useStore } from '@nanostores/react'
|
||||
import { useEffect, useRef } from 'react'
|
||||
|
||||
import { $activeGatewayProfile } from '@/store/profile'
|
||||
|
||||
/** Run `onSwitch` when the active gateway profile changes — never on first
|
||||
* mount. For dropping per-profile view state (probes, cached usage, drafts)
|
||||
* when the backend the app talks to swaps underneath a still-mounted view. */
|
||||
export function useOnProfileSwitch(onSwitch: () => void): void {
|
||||
const profile = useStore($activeGatewayProfile)
|
||||
const first = useRef(true)
|
||||
|
||||
// eslint-disable-next-line no-restricted-syntax -- legitimate non-atom ref write (see eslint rule comment)
|
||||
useEffect(() => {
|
||||
if (first.current) {
|
||||
first.current = false
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
onSwitch()
|
||||
// Fire on profile change only; onSwitch identity is intentionally ignored.
|
||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
}, [profile])
|
||||
}
|
||||
Reference in new issue
Block a user