Skip to content

Commit e26acfb

Browse files
authored
Merge pull request Expensify#66884 from callstack-internal/fix/useOnyx-instead-context
Remove Onyx contexts and add useOnyx instead
2 parents 13af4fa + 24b4c35 commit e26acfb

4 files changed

Lines changed: 12 additions & 30 deletions

File tree

src/components/EmojiPicker/EmojiPickerMenu/useEmojiPickerMenu.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
11
import type {FlashList} from '@shopify/flash-list';
22
import {useCallback, useEffect, useMemo, useRef, useState} from 'react';
33
import emojis from '@assets/emojis';
4-
import {useFrequentlyUsedEmojis} from '@components/OnyxListItemProvider';
54
import useKeyboardState from '@hooks/useKeyboardState';
65
import useLocalize from '@hooks/useLocalize';
6+
import useOnyx from '@hooks/useOnyx';
77
import usePreferredEmojiSkinTone from '@hooks/usePreferredEmojiSkinTone';
88
import useStyleUtils from '@hooks/useStyleUtils';
99
import useWindowDimensions from '@hooks/useWindowDimensions';
1010
import type {EmojiPickerList, EmojiPickerListItem} from '@libs/EmojiUtils';
1111
import {getHeaderEmojis, getSpacersIndexes, mergeEmojisWithFrequentlyUsedEmojis, suggestEmojis} from '@libs/EmojiUtils';
12+
import ONYXKEYS from '@src/ONYXKEYS';
1213

1314
const useEmojiPickerMenu = () => {
1415
const emojiListRef = useRef<FlashList<EmojiPickerListItem>>(null);
15-
const frequentlyUsedEmojis = useFrequentlyUsedEmojis();
16+
const [frequentlyUsedEmojis] = useOnyx(ONYXKEYS.FREQUENTLY_USED_EMOJIS, {canBeMissing: true});
1617
// eslint-disable-next-line react-compiler/react-compiler, react-hooks/exhaustive-deps
1718
const allEmojis = useMemo(() => mergeEmojisWithFrequentlyUsedEmojis(emojis), [frequentlyUsedEmojis]);
1819
const headerEmojis = useMemo(() => getHeaderEmojis(allEmojis), [allEmojis]);

src/components/OnyxListItemProvider.tsx

Lines changed: 1 addition & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,6 @@ import createOnyxContext from './createOnyxContext';
1111
const [PersonalDetailsProvider, PersonalDetailsContext, usePersonalDetails] = createOnyxContext(ONYXKEYS.PERSONAL_DETAILS_LIST);
1212
const [BlockedFromConciergeProvider, , useBlockedFromConcierge] = createOnyxContext(ONYXKEYS.NVP_BLOCKED_FROM_CONCIERGE);
1313
const [BetasProvider, BetasContext, useBetas] = createOnyxContext(ONYXKEYS.BETAS);
14-
const [ReportCommentDraftsProvider] = createOnyxContext(ONYXKEYS.COLLECTION.REPORT_DRAFT_COMMENT);
15-
const [PreferredThemeProvider, PreferredThemeContext] = createOnyxContext(ONYXKEYS.PREFERRED_THEME);
16-
const [FrequentlyUsedEmojisProvider, , useFrequentlyUsedEmojis] = createOnyxContext(ONYXKEYS.FREQUENTLY_USED_EMOJIS);
17-
const [PreferredEmojiSkinToneProvider, PreferredEmojiSkinToneContext] = createOnyxContext(ONYXKEYS.PREFERRED_EMOJI_SKIN_TONE);
1814
const [SessionProvider, , useSession] = createOnyxContext(ONYXKEYS.SESSION);
1915
const [PolicyCategoriesProvider, , usePolicyCategories] = createOnyxContext(ONYXKEYS.COLLECTION.POLICY_CATEGORIES);
2016
const [PolicyTagsProvider, , usePolicyTags] = createOnyxContext(ONYXKEYS.COLLECTION.POLICY_TAGS);
@@ -32,10 +28,6 @@ function OnyxListItemProvider(props: OnyxListItemProviderProps) {
3228
PersonalDetailsProvider,
3329
BlockedFromConciergeProvider,
3430
BetasProvider,
35-
ReportCommentDraftsProvider,
36-
PreferredThemeProvider,
37-
FrequentlyUsedEmojisProvider,
38-
PreferredEmojiSkinToneProvider,
3931
SessionProvider,
4032
PolicyCategoriesProvider,
4133
PolicyTagsProvider,
@@ -51,17 +43,4 @@ OnyxListItemProvider.displayName = 'OnyxListItemProvider';
5143

5244
export default OnyxListItemProvider;
5345

54-
export {
55-
usePersonalDetails,
56-
BetasContext,
57-
PreferredThemeContext,
58-
useBetas,
59-
useFrequentlyUsedEmojis,
60-
PersonalDetailsContext,
61-
PreferredEmojiSkinToneContext,
62-
useBlockedFromConcierge,
63-
useSession,
64-
usePolicyCategories,
65-
usePolicyTags,
66-
useAllReportsTransactionsAndViolations,
67-
};
46+
export {usePersonalDetails, BetasContext, useBetas, PersonalDetailsContext, useBlockedFromConcierge, useSession, usePolicyCategories, usePolicyTags, useAllReportsTransactionsAndViolations};

src/hooks/usePreferredEmojiSkinTone.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1-
import {useCallback, useContext} from 'react';
2-
import {PreferredEmojiSkinToneContext} from '@components/OnyxListItemProvider';
1+
import {useCallback} from 'react';
32
import {updatePreferredSkinTone as updatePreferredSkinToneAction} from '@userActions/User';
3+
import ONYXKEYS from '@src/ONYXKEYS';
4+
import useOnyx from './useOnyx';
45

56
export default function usePreferredEmojiSkinTone() {
6-
const preferredSkinTone = useContext(PreferredEmojiSkinToneContext);
7+
const [preferredSkinTone] = useOnyx(ONYXKEYS.PREFERRED_EMOJI_SKIN_TONE, {canBeMissing: true});
78

89
const updatePreferredSkinTone = useCallback(
910
(skinTone: number) => {

src/hooks/useThemePreference.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
1-
import {useContext, useMemo} from 'react';
1+
import {useMemo} from 'react';
22
import {useColorScheme} from 'react-native';
3-
import {PreferredThemeContext} from '@components/OnyxListItemProvider';
43
import CONST from '@src/CONST';
4+
import ONYXKEYS from '@src/ONYXKEYS';
5+
import useOnyx from './useOnyx';
56

67
function useThemePreference() {
7-
const preferredThemeFromStorage = useContext(PreferredThemeContext);
8+
const [preferredThemeFromStorage] = useOnyx(ONYXKEYS.PREFERRED_THEME, {canBeMissing: true});
89
const systemTheme = useColorScheme();
910

1011
const themePreference = useMemo(() => {

0 commit comments

Comments
 (0)