Sketch cleanup

This commit is contained in:
Eric Bailey
2025-06-20 14:02:45 -05:00
parent 6c689a3c7c
commit 2ce22fa3f2
2 changed files with 28 additions and 36 deletions
+9 -18
View File
@@ -1,21 +1,12 @@
export enum Group { /**
Wayfinding = 'wayfinding', * NEVER CHANGE THE ORDER OF THIS MAP, the compression step depends on the
Composer = 'composer', * other of the keys!
} */
export const flags = {
newThreadgate: false,
activitySubscriptionAlert: false,
} as const
export type Flags = { export type Flag = keyof typeof flags
'wayfinding:settings': boolean
'wayfinding:settings:moderation': boolean
'composer:threadgate_20250204': boolean
}
export type Flag = keyof Flags
// existing users?
export const flags: Flags = {
'wayfinding:settings': true,
'wayfinding:settings:moderation': true,
'composer:threadgate_20250204': false,
}
export const flagKeys = Object.keys(flags) as (keyof typeof flags)[] export const flagKeys = Object.keys(flags) as (keyof typeof flags)[]
+19 -18
View File
@@ -1,36 +1,37 @@
import {useMemo, useCallback} from 'react' import {useCallback, useMemo} from 'react'
import {flags, flagKeys, Flag} from '#/state/queries/nudges/flags'
import {pack, unpack} from '#/state/queries/nudges/compression' import {pack, unpack} from '#/state/queries/nudges/compression'
import {type Flag, flagKeys, flags} from '#/state/queries/nudges/flags'
const TEST = pack(flags)
export function useNudges() { export function useNudges() {
const data = TEST // TODO const data = pack(flags) // TODO fetch from API
return useMemo(() => { return useMemo(() => {
return data ? unpack(data, flagKeys) : flags return data ? unpack(data, flagKeys) : flags
}, [data]) }, [data])
} }
export function useNudgesGroup() {
// TODO
}
export function useNudge(flag: Flag) { export function useNudge(flag: Flag) {
const nudges = useNudges() const nudges = useNudges()
const nudge = nudges[flag]
const complete = useCallback(() => { const complete = useCallback(() => {
const next = {...nudges} const next = {...nudges}
next[flag] = true next[flag] = true
const data = pack(next) pack(next) // TODO write to API
// TODO update }, [flag, nudges])
}, [nudge])
const reset = useCallback(() => { const reset = useCallback(() => {
const next = {...nudges} const next = {...nudges}
next[flag] = false next[flag] = false
const data = pack(next) pack(next) // TODO write to API
// TODO update }, [flag, nudges])
}, [nudge])
return useMemo(() => ({ return useMemo(
}), [nudge, complete, reset]) () => ({
nudge: nudges[flag],
complete,
reset,
}),
[flag, nudges, complete, reset],
)
} }