- Visit fmhy.net/android-iosguide#ios-ipas for more sources.
- Sideloading Guide: https://rentry.co/sideloadingguide
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import { File, type FileHandle } from 'expo-file-system/next' | |
| interface FileInput { | |
| uri: string | |
| } | |
| export default class TusFileReader { | |
| async openFile({ uri }: FileInput) { | |
| const handle = new File(uri) | |
| if (!handle.exists || !handle.size) throw new Error(`File ${uri} not found`) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| const { getSentryExpoConfig } = require('@sentry/react-native/metro') | |
| const { withNativeWind } = require('nativewind/metro') | |
| const path = require('path') | |
| const config = getSentryExpoConfig(__dirname) | |
| config.transformer.getTransformOptions = async () => ({ | |
| transform: { | |
| experimentalImportSupport: true, | |
| inlineRequires: true, |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import { useAuth } from "@clerk/clerk-expo"; | |
| import { useEffect, useRef, useCallback } from "react"; | |
| import EventSource from "react-native-sse"; | |
| import { useBaseChat } from "@qms/shared"; | |
| import type { | |
| UseChatOptions, | |
| UseChatReturn, | |
| TextDeltaEvent, | |
| ToolCallEvent, | |
| ToolResultEvent, |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import { Storage } from "expo-sqlite/kv-store"; | |
| // localStorage polyfill. Life's too short to not have some storage API. | |
| if (typeof localStorage === "undefined") { | |
| class StoragePolyfill { | |
| /** | |
| * Returns the number of key/value pairs. | |
| * | |
| * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Storage/length) | |
| */ |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import type { ReactElement } from "react"; | |
| import { cloneElement, memo, useCallback } from "react"; | |
| import { AlertV2 } from "@/components/AlertV2/alertV2Helpers"; | |
| export interface DestructiveActionGuardProps { | |
| children: ReactElement<{ onPress: () => void }>; | |
| confirmationTitle?: string; | |
| confirmationDescription?: string; | |
| } |
First, copy the config plugin from this repo: https://github.com/gaishimo/eas-widget-example
You can reference my PRs there too (which, at the time of writing, aren't merged).
After adding the config plugin (see app.json) with your dev team ID, as well as a bundle ID, you can edit the widget folder to edit your code. Then npx expo run:ios (or npx expo run:android).
After npx expo run:ios, open the ios folder, and open the file that ends in .xcworkspace in XCode. Make sure you have the latest macOS and XCode versions. If you don't, everything will break.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import { createContext, forwardRef, useCallback, useMemo } from "react"; | |
| import { FlatList, FlatListProps, ViewToken } from "react-native"; | |
| import Animated, { useSharedValue } from "react-native-reanimated"; | |
| const MAX_VIEWABLE_ITEMS = 4; | |
| type ViewabilityItemsContextType = string[]; | |
| export const ViewabilityItemsContext = createContext< | |
| Animated.SharedValue<ViewabilityItemsContextType> |
In computing, memoization or memoisation
is an optimization technique used primarily
to speed up computer programs by storing
the results of expensive function calls and
returning the cached result when the same
inputs occur again.
— wikipedia
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| diff --git a/node_modules/react-native/Libraries/Image/RCTImageUtils.m b/node_modules/react-native/Libraries/Image/RCTImageUtils.m | |
| index 899bfe4..33133c3 100644 | |
| --- a/node_modules/react-native/Libraries/Image/RCTImageUtils.m | |
| +++ b/node_modules/react-native/Libraries/Image/RCTImageUtils.m | |
| @@ -308,13 +308,26 @@ BOOL RCTUpscalingRequired(CGSize sourceSize, CGFloat sourceScale, | |
| if (!imageRef) { | |
| return nil; | |
| } | |
| + if (@available(iOS 10, *)) { | |
| + // Return all images in P3 color space |
NewerOlder