diff --git a/native/dev-menu.js b/native/dev-menu.js new file mode 100644 --- /dev/null +++ b/native/dev-menu.js @@ -0,0 +1,25 @@ +// @flow + +import { registerDevMenuItems } from 'expo-dev-menu'; + +import { filesystemMediaCache } from './media/media-cache.js'; + +// see https://docs.expo.dev/develop/development-builds/development-workflows/#extending-the-dev-menu +// for details on extending the dev menu +if (__DEV__) { + const devMenuItems = [ + { + name: 'Clear media cache', + callback: async () => { + try { + await filesystemMediaCache.clearCache(); + alert('Media cache cleared'); + } catch { + alert('Cache clear failed'); + } + }, + }, + ]; + + registerDevMenuItems(devMenuItems); +} diff --git a/native/root.react.js b/native/root.react.js --- a/native/root.react.js +++ b/native/root.react.js @@ -57,6 +57,9 @@ import ThemeHandler from './themes/theme-handler.react.js'; import { provider } from './utils/ethers-utils.js'; +// Add custom items to expo-dev-menu +import './dev-menu.js'; + if (Platform.OS === 'android') { UIManager.setLayoutAnimationEnabledExperimental && UIManager.setLayoutAnimationEnabledExperimental(true);