Files
discord-decomp/modules/display_name_styles/hooks/useDisplayNameStylesNewItems.tsx
T
2026-11-01 12:12:55 +02:00

45 lines
2.3 KiB
TypeScript

// Metro module 14355 (f14356).
import { useMemo, useCallback } from "react";
import DisplayNameStylesSeenStore from "../DisplayNameStylesSeenStore";
import { FLYWHEEL_EFFECTS, FLYWHEEL_FONTS } from "../DisplayNameStylesConstants";
import { useStateFromStores } from "../../../_bundle/Module589";
import { markDisplayNameStyleFontSeen, markDisplayNameStyleEffectSeen, markDisplayNameStyleNewFontsBadgeDismissed, markDisplayNameStyleNewEffectsBadgeDismissed } from "../DisplayNameStylesActionCreators";
export function useDisplayNameStylesNewFonts(a0) {
let c21170_0 = a0;
const stateFromStores = useStateFromStores([DisplayNameStylesSeenStore], () => DisplayNameStylesSeenStore.getSeenFonts());
return {
dotFontIds: useMemo(() => new Set(c21170_0.filter((item) => FLYWHEEL_FONTS.includes(item) && !stateFromStores.has(item))), [a0, stateFromStores]),
dismissFontDot: useCallback((a0) => {
markDisplayNameStyleFontSeen(a0);
}, [])
};
}
export function useDisplayNameStylesNewEffects(a0) {
let c21171_0 = a0;
const stateFromStores2 = useStateFromStores([DisplayNameStylesSeenStore], () => DisplayNameStylesSeenStore.getSeenEffects());
return {
dotEffectIds: useMemo(() => new Set(c21171_0.filter((item) => FLYWHEEL_EFFECTS.includes(item) && !stateFromStores2.has(item))), [a0, stateFromStores2]),
dismissEffectDot: useCallback((a0) => {
markDisplayNameStyleEffectSeen(a0);
}, [])
};
}
export function useDisplayNameStylesNewFontsBadge(a0) {
const stateFromStores3 = useStateFromStores([DisplayNameStylesSeenStore], () => DisplayNameStylesSeenStore.getNewFontsBadgeDismissed());
return {
showFontsBadge: useMemo(() => a0.some((item) => FLYWHEEL_FONTS.includes(item)), [a0]) && !stateFromStores3,
dismissFontsBadge: useCallback(() => {
markDisplayNameStyleNewFontsBadgeDismissed();
}, [])
};
}
export function useDisplayNameStylesNewEffectsBadge(a0) {
const stateFromStores3 = useStateFromStores([DisplayNameStylesSeenStore], () => DisplayNameStylesSeenStore.getNewEffectsBadgeDismissed());
return {
showEffectsBadge: useMemo(() => a0.some((item) => FLYWHEEL_EFFECTS.includes(item)), [a0]) && !stateFromStores3,
dismissEffectsBadge: useCallback(() => {
markDisplayNameStyleNewEffectsBadgeDismissed();
}, [])
};
}