From 4c93913c1b6a4cd800b52963e9fe70123239882f Mon Sep 17 00:00:00 2001 From: Hassan Khan Date: Mon, 23 Feb 2026 21:51:07 +0000 Subject: [PATCH 1/2] refactor(@expo/metro-config): refactor `graphToSerialAssetsAsync()` for readability (#43254) # Why The existing code in `serializeChunks.ts` was a little hard-to-follow. # How Re-organizes code in `serializeChunks.ts` for clarity/readability. # Test Plan - CI # Checklist - [ ] I added a `changelog.md` entry and rebuilt the package sources according to [this short guide](https://github.com/expo/expo/blob/main/CONTRIBUTING.md#-before-submitting) - [x] This diff will work correctly for `npx expo prebuild` & EAS Build (eg: updated a module plugin). - [ ] Conforms with the [Documentation Writing Style Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md) --- .../build/serializer/serializeChunks.js | 248 ++++++------- .../build/serializer/serializeChunks.js.map | 2 +- .../src/serializer/serializeChunks.ts | 346 +++++++++--------- 3 files changed, 280 insertions(+), 316 deletions(-) diff --git a/packages/@expo/metro-config/build/serializer/serializeChunks.js b/packages/@expo/metro-config/build/serializer/serializeChunks.js index d495ede0a08416..03ccbc4be5bd63 100644 --- a/packages/@expo/metro-config/build/serializer/serializeChunks.js +++ b/packages/@expo/metro-config/build/serializer/serializeChunks.js @@ -53,15 +53,6 @@ function getPlatformOption(...args) { } return _getPlatformOption(...args); } -// Convert file paths to regex matchers. -function pathToRegex(path) { - // Escape regex special characters, except for '*' - let regexSafePath = path.replace(/[-[\]{}()+?.,\\^$|#\s]/g, '\\$&'); - // Replace '*' with '.*' to act as a wildcard in regex - regexSafePath = regexSafePath.replace(/\*/g, '.*'); - // Create a RegExp object with the modified string - return new RegExp('^' + regexSafePath + '$'); -} async function graphToSerialAssetsAsync(config, serializeChunkOptions, ...props) { const [entryFile, preModules, graph, options] = props; const cssDeps = (0, getCssDeps_1.getCssSerialAssets)(graph.dependencies, { @@ -70,76 +61,19 @@ async function graphToSerialAssetsAsync(config, serializeChunkOptions, ...props) }); // Create chunks for splitting. const chunks = new Set(); - [ - { - test: pathToRegex(entryFile), - }, - ].map((chunkSettings) => gatherChunks(preModules, chunks, chunkSettings, preModules, graph, options, false, true)); - const entryChunk = [...chunks.values()].find((chunk) => !chunk.isAsync && chunk.hasAbsolutePath(entryFile)); + gatherChunks(preModules, chunks, { test: pathToRegex(entryFile) }, preModules, graph, options, false, true); + const entryChunk = findEntryChunk(chunks, entryFile); if (entryChunk) { - for (const chunk of chunks.values()) { - if (!chunk.isEntry && chunk.isAsync) { - for (const dep of chunk.deps.values()) { - if (entryChunk.deps.has(dep)) { - // Remove the dependency from the async chunk since it will be loaded in the main chunk. - chunk.deps.delete(dep); - } - } - } - } - const toCompare = [...chunks.values()]; - const commonDependencies = []; - while (toCompare.length) { - const chunk = toCompare.shift(); - for (const chunk2 of toCompare) { - if (chunk !== chunk2 && chunk.isAsync && chunk2.isAsync) { - const commonDeps = [...chunk.deps].filter((dep) => chunk2.deps.has(dep)); - for (const dep of commonDeps) { - chunk.deps.delete(dep); - chunk2.deps.delete(dep); - } - commonDependencies.push(...commonDeps); - } - } - } - let commonChunk; - // If common dependencies were found, extract them to the shared chunk. - if (commonDependencies.length) { - const commonDependenciesUnique = [...new Set(commonDependencies)]; - commonChunk = new Chunk('/__common.js', commonDependenciesUnique, graph, options, false, true); + removeEntryDepsFromAsyncChunks(entryChunk, chunks); + const commonChunk = extractCommonChunk(chunks, graph, options); + if (commonChunk) { entryChunk.requiredChunks.add(commonChunk); chunks.add(commonChunk); } - // TODO: Optimize this pass more. - // Remove all dependencies from async chunks that are already in the common chunk. - for (const chunk of [...chunks.values()]) { - if (!chunk.isEntry && chunk !== commonChunk) { - for (const dep of chunk.deps) { - if (entryChunk.deps.has(dep) || commonChunk?.deps.has(dep)) { - chunk.deps.delete(dep); - } - } - } - } - // Remove empty chunks - for (const chunk of [...chunks.values()]) { - if (!chunk.isEntry && chunk.deps.size === 0) { - chunks.delete(chunk); - } - } - // Create runtime chunk + deduplicateAgainstKnownChunks(chunks, entryChunk, commonChunk); + removeEmptyChunks(chunks); if (commonChunk) { - const runtimeChunk = new Chunk('/__expo-metro-runtime.js', [], graph, options, false, true); - // All premodules (including metro-runtime) should load first - for (const preModule of entryChunk.preModules) { - runtimeChunk.preModules.add(preModule); - } - entryChunk.preModules = new Set(); - for (const chunk of chunks) { - // Runtime chunk has to load before any other a.k.a all chunks require it. - chunk.requiredChunks.add(runtimeChunk); - } - chunks.add(runtimeChunk); + createRuntimeChunk(entryChunk, chunks, graph, options); } } const jsAssets = await serializeChunksAsync(chunks, config.serializer ?? {}, serializeChunkOptions); @@ -354,58 +288,10 @@ class Chunk { // TODO: Move HTML serializing closer to this code so we can reduce passing this much data around. modulePaths: [...this.deps].map((module) => module.path), paths: jsCode.paths, - expoDomComponentReferences: [ - ...new Set([...this.deps] - .map((module) => { - return module.output.map((output) => { - if ('expoDomComponentReference' in output.data && - typeof output.data.expoDomComponentReference === 'string') { - return output.data.expoDomComponentReference; - } - return undefined; - }); - }) - .flat()), - ].filter((value) => typeof value === 'string'), - reactClientReferences: [ - ...new Set([...this.deps] - .map((module) => { - return module.output.map((output) => { - if ('reactClientReference' in output.data && - typeof output.data.reactClientReference === 'string') { - return output.data.reactClientReference; - } - return undefined; - }); - }) - .flat()), - ].filter((value) => typeof value === 'string'), - reactServerReferences: [ - ...new Set([...this.deps] - .map((module) => { - return module.output.map((output) => { - if ('reactServerReference' in output.data && - typeof output.data.reactServerReference === 'string') { - return output.data.reactServerReference; - } - return undefined; - }); - }) - .flat()), - ].filter((value) => typeof value === 'string'), - loaderReferences: [ - ...new Set([...this.deps] - .map((module) => { - return module.output.map((output) => { - if ('loaderReference' in output.data && - typeof output.data.loaderReference === 'string') { - return output.data.loaderReference; - } - return undefined; - }); - }) - .flat()), - ].filter((value) => typeof value === 'string'), + expoDomComponentReferences: collectOutputReferences(this.deps, 'expoDomComponentReference'), + reactClientReferences: collectOutputReferences(this.deps, 'reactClientReference'), + reactServerReferences: collectOutputReferences(this.deps, 'reactServerReference'), + loaderReferences: collectOutputReferences(this.deps, 'loaderReference'), }, source: jsCode.code, }; @@ -512,6 +398,37 @@ class Chunk { } } exports.Chunk = Chunk; +function getSortedModules(modules, { createModuleId, }) { + // Assign IDs to modules in a consistent order + for (const module of modules) { + createModuleId(module.path); + } + // Sort by IDs + return modules.sort((a, b) => createModuleId(a.path) - createModuleId(b.path)); +} +// Convert file paths to regex matchers. +function pathToRegex(path) { + // Escape regex special characters, except for '*' + let regexSafePath = path.replace(/[-[\]{}()+?.,\\^$|#\s]/g, '\\$&'); + // Replace '*' with '.*' to act as a wildcard in regex + regexSafePath = regexSafePath.replace(/\*/g, '.*'); + // Create a RegExp object with the modified string + return new RegExp('^' + regexSafePath + '$'); +} +function collectOutputReferences(modules, key) { + return [ + ...new Set([...modules] + .map((module) => { + return module.output.map((output) => { + if (key in output.data && typeof output.data[key] === 'string') { + return output.data[key]; + } + return undefined; + }); + }) + .flat()), + ].filter((value) => typeof value === 'string'); +} function getEntryModulesForChunkSettings(graph, settings) { return [...graph.dependencies.entries()] .filter(([path]) => settings.test.test(path)) @@ -570,6 +487,77 @@ function gatherChunks(runtimePremodules, chunks, settings, preModules, graph, op } return chunks; } +function findEntryChunk(chunks, entryFile) { + return [...chunks.values()].find((chunk) => !chunk.isAsync && chunk.hasAbsolutePath(entryFile)); +} +function removeEntryDepsFromAsyncChunks(entryChunk, chunks) { + for (const chunk of chunks.values()) { + if (!chunk.isEntry && chunk.isAsync) { + for (const dep of chunk.deps.values()) { + if (entryChunk.deps.has(dep)) { + // Remove the dependency from the async chunk since it will be loaded in the main chunk. + chunk.deps.delete(dep); + } + } + } + } +} +function extractCommonChunk(chunks, graph, options) { + const toCompare = [...chunks.values()]; + const commonDependencies = []; + while (toCompare.length) { + const chunk = toCompare.shift(); + for (const chunk2 of toCompare) { + if (chunk !== chunk2 && chunk.isAsync && chunk2.isAsync) { + const commonDeps = [...chunk.deps].filter((dep) => chunk2.deps.has(dep)); + for (const dep of commonDeps) { + chunk.deps.delete(dep); + chunk2.deps.delete(dep); + } + commonDependencies.push(...commonDeps); + } + } + } + // If common dependencies were found, extract them to the shared chunk. + if (commonDependencies.length) { + const commonDependenciesUnique = [...new Set(commonDependencies)]; + return new Chunk('/__common.js', commonDependenciesUnique, graph, options, false, true); + } + return undefined; +} +function deduplicateAgainstKnownChunks(chunks, entryChunk, commonChunk) { + // TODO: Optimize this pass more. + // Remove all dependencies from async chunks that are already in the common chunk. + for (const chunk of [...chunks.values()]) { + if (!chunk.isEntry && chunk !== commonChunk) { + for (const dep of chunk.deps) { + if (entryChunk.deps.has(dep) || commonChunk?.deps.has(dep)) { + chunk.deps.delete(dep); + } + } + } + } +} +function removeEmptyChunks(chunks) { + for (const chunk of [...chunks.values()]) { + if (!chunk.isEntry && chunk.deps.size === 0) { + chunks.delete(chunk); + } + } +} +function createRuntimeChunk(entryChunk, chunks, graph, options) { + const runtimeChunk = new Chunk('/__expo-metro-runtime.js', [], graph, options, false, true); + // All premodules (including metro-runtime) should load first + for (const preModule of entryChunk.preModules) { + runtimeChunk.preModules.add(preModule); + } + entryChunk.preModules = new Set(); + for (const chunk of chunks) { + // Runtime chunk has to load before any other a.k.a all chunks require it. + chunk.requiredChunks.add(runtimeChunk); + } + chunks.add(runtimeChunk); +} async function serializeChunksAsync(chunks, serializerConfig, options) { const jsAssets = []; const chunksArray = [...chunks.values()]; @@ -578,12 +566,4 @@ async function serializeChunksAsync(chunks, serializerConfig, options) { })); return jsAssets; } -function getSortedModules(modules, { createModuleId, }) { - // Assign IDs to modules in a consistent order - for (const module of modules) { - createModuleId(module.path); - } - // Sort by IDs - return modules.sort((a, b) => createModuleId(a.path) - createModuleId(b.path)); -} //# sourceMappingURL=serializeChunks.js.map \ No newline at end of file diff --git a/packages/@expo/metro-config/build/serializer/serializeChunks.js.map b/packages/@expo/metro-config/build/serializer/serializeChunks.js.map index 41fd3e25f81f2b..1a45c24eb0ea48 100644 --- a/packages/@expo/metro-config/build/serializer/serializeChunks.js.map +++ b/packages/@expo/metro-config/build/serializer/serializeChunks.js.map @@ -1 +1 @@ -{"version":3,"file":"serializeChunks.js","sourceRoot":"","sources":["../../src/serializer/serializeChunks.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"serializeChunks.js","sourceRoot":"","sources":["../../src/serializer/serializeChunks.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/@expo/metro-config/src/serializer/serializeChunks.ts b/packages/@expo/metro-config/src/serializer/serializeChunks.ts index 759babb9e0ce75..a0a6ca3ed38d72 100644 --- a/packages/@expo/metro-config/src/serializer/serializeChunks.ts +++ b/packages/@expo/metro-config/src/serializer/serializeChunks.ts @@ -86,18 +86,6 @@ export type SerializeChunkOptions = { splitChunks: boolean; } & SerializerConfigOptions; -// Convert file paths to regex matchers. -function pathToRegex(path: string) { - // Escape regex special characters, except for '*' - let regexSafePath = path.replace(/[-[\]{}()+?.,\\^$|#\s]/g, '\\$&'); - - // Replace '*' with '.*' to act as a wildcard in regex - regexSafePath = regexSafePath.replace(/\*/g, '.*'); - - // Create a RegExp object with the modified string - return new RegExp('^' + regexSafePath + '$'); -} - export async function graphToSerialAssetsAsync( config: MetroConfig, serializeChunkOptions: SerializeChunkOptions, @@ -116,100 +104,33 @@ export async function graphToSerialAssetsAsync( // Create chunks for splitting. const chunks = new Set(); - [ - { - test: pathToRegex(entryFile), - }, - ].map((chunkSettings) => - gatherChunks(preModules, chunks, chunkSettings, preModules, graph, options, false, true) + gatherChunks( + preModules, + chunks, + { test: pathToRegex(entryFile) }, + preModules, + graph, + options, + false, + true ); - const entryChunk = [...chunks.values()].find( - (chunk) => !chunk.isAsync && chunk.hasAbsolutePath(entryFile) - ); + const entryChunk = findEntryChunk(chunks, entryFile); if (entryChunk) { - for (const chunk of chunks.values()) { - if (!chunk.isEntry && chunk.isAsync) { - for (const dep of chunk.deps.values()) { - if (entryChunk.deps.has(dep)) { - // Remove the dependency from the async chunk since it will be loaded in the main chunk. - chunk.deps.delete(dep); - } - } - } - } - - const toCompare = [...chunks.values()]; - - const commonDependencies = []; - - while (toCompare.length) { - const chunk = toCompare.shift()!; - for (const chunk2 of toCompare) { - if (chunk !== chunk2 && chunk.isAsync && chunk2.isAsync) { - const commonDeps = [...chunk.deps].filter((dep) => chunk2.deps.has(dep)); - - for (const dep of commonDeps) { - chunk.deps.delete(dep); - chunk2.deps.delete(dep); - } + removeEntryDepsFromAsyncChunks(entryChunk, chunks); - commonDependencies.push(...commonDeps); - } - } - } - - let commonChunk: Chunk | undefined; - // If common dependencies were found, extract them to the shared chunk. - if (commonDependencies.length) { - const commonDependenciesUnique = [...new Set(commonDependencies)]; - commonChunk = new Chunk( - '/__common.js', - commonDependenciesUnique, - graph, - options, - false, - true - ); + const commonChunk = extractCommonChunk(chunks, graph, options); + if (commonChunk) { entryChunk.requiredChunks.add(commonChunk); chunks.add(commonChunk); } - // TODO: Optimize this pass more. - // Remove all dependencies from async chunks that are already in the common chunk. - for (const chunk of [...chunks.values()]) { - if (!chunk.isEntry && chunk !== commonChunk) { - for (const dep of chunk.deps) { - if (entryChunk.deps.has(dep) || commonChunk?.deps.has(dep)) { - chunk.deps.delete(dep); - } - } - } - } - - // Remove empty chunks - for (const chunk of [...chunks.values()]) { - if (!chunk.isEntry && chunk.deps.size === 0) { - chunks.delete(chunk); - } - } + deduplicateAgainstKnownChunks(chunks, entryChunk, commonChunk); + removeEmptyChunks(chunks); - // Create runtime chunk if (commonChunk) { - const runtimeChunk = new Chunk('/__expo-metro-runtime.js', [], graph, options, false, true); - - // All premodules (including metro-runtime) should load first - for (const preModule of entryChunk.preModules) { - runtimeChunk.preModules.add(preModule); - } - entryChunk.preModules = new Set(); - - for (const chunk of chunks) { - // Runtime chunk has to load before any other a.k.a all chunks require it. - chunk.requiredChunks.add(runtimeChunk); - } - chunks.add(runtimeChunk); + createRuntimeChunk(entryChunk, chunks, graph, options); } } @@ -493,74 +414,10 @@ export class Chunk { // TODO: Move HTML serializing closer to this code so we can reduce passing this much data around. modulePaths: [...this.deps].map((module) => module.path), paths: jsCode.paths, - expoDomComponentReferences: [ - ...new Set( - [...this.deps] - .map((module) => { - return module.output.map((output) => { - if ( - 'expoDomComponentReference' in output.data && - typeof output.data.expoDomComponentReference === 'string' - ) { - return output.data.expoDomComponentReference; - } - return undefined; - }); - }) - .flat() - ), - ].filter((value) => typeof value === 'string') as string[], - reactClientReferences: [ - ...new Set( - [...this.deps] - .map((module) => { - return module.output.map((output) => { - if ( - 'reactClientReference' in output.data && - typeof output.data.reactClientReference === 'string' - ) { - return output.data.reactClientReference; - } - return undefined; - }); - }) - .flat() - ), - ].filter((value) => typeof value === 'string') as string[], - reactServerReferences: [ - ...new Set( - [...this.deps] - .map((module) => { - return module.output.map((output) => { - if ( - 'reactServerReference' in output.data && - typeof output.data.reactServerReference === 'string' - ) { - return output.data.reactServerReference; - } - return undefined; - }); - }) - .flat() - ), - ].filter((value) => typeof value === 'string') as string[], - loaderReferences: [ - ...new Set( - [...this.deps] - .map((module) => { - return module.output.map((output) => { - if ( - 'loaderReference' in output.data && - typeof output.data.loaderReference === 'string' - ) { - return output.data.loaderReference; - } - return undefined; - }); - }) - .flat() - ), - ].filter((value) => typeof value === 'string') as string[], + expoDomComponentReferences: collectOutputReferences(this.deps, 'expoDomComponentReference'), + reactClientReferences: collectOutputReferences(this.deps, 'reactClientReference'), + reactServerReferences: collectOutputReferences(this.deps, 'reactServerReference'), + loaderReferences: collectOutputReferences(this.deps, 'loaderReference'), }, source: jsCode.code, }; @@ -695,6 +552,53 @@ export class Chunk { } } +export function getSortedModules( + modules: Module[], + { + createModuleId, + }: { + createModuleId: (path: string) => number; + } +): readonly Module[] { + // Assign IDs to modules in a consistent order + for (const module of modules) { + createModuleId(module.path); + } + // Sort by IDs + return modules.sort( + (a: Module, b: Module) => createModuleId(a.path) - createModuleId(b.path) + ); +} + +// Convert file paths to regex matchers. +function pathToRegex(path: string) { + // Escape regex special characters, except for '*' + let regexSafePath = path.replace(/[-[\]{}()+?.,\\^$|#\s]/g, '\\$&'); + + // Replace '*' with '.*' to act as a wildcard in regex + regexSafePath = regexSafePath.replace(/\*/g, '.*'); + + // Create a RegExp object with the modified string + return new RegExp('^' + regexSafePath + '$'); +} + +function collectOutputReferences(modules: Iterable, key: string): string[] { + return [ + ...new Set( + [...modules] + .map((module) => { + return module.output.map((output) => { + if (key in output.data && typeof output.data[key] === 'string') { + return output.data[key]; + } + return undefined; + }); + }) + .flat() + ), + ].filter((value): value is string => typeof value === 'string'); +} + function getEntryModulesForChunkSettings(graph: ReadOnlyGraph, settings: ChunkSettings) { return [...graph.dependencies.entries()] .filter(([path]) => settings.test.test(path)) @@ -792,6 +696,104 @@ function gatherChunks( return chunks; } +function findEntryChunk(chunks: Set, entryFile: string): Chunk | undefined { + return [...chunks.values()].find((chunk) => !chunk.isAsync && chunk.hasAbsolutePath(entryFile)); +} + +function removeEntryDepsFromAsyncChunks(entryChunk: Chunk, chunks: Set): void { + for (const chunk of chunks.values()) { + if (!chunk.isEntry && chunk.isAsync) { + for (const dep of chunk.deps.values()) { + if (entryChunk.deps.has(dep)) { + // Remove the dependency from the async chunk since it will be loaded in the main chunk. + chunk.deps.delete(dep); + } + } + } + } +} + +function extractCommonChunk( + chunks: Set, + graph: ReadOnlyGraph, + options: SerializerOptions +): Chunk | undefined { + const toCompare = [...chunks.values()]; + + const commonDependencies = []; + + while (toCompare.length) { + const chunk = toCompare.shift()!; + for (const chunk2 of toCompare) { + if (chunk !== chunk2 && chunk.isAsync && chunk2.isAsync) { + const commonDeps = [...chunk.deps].filter((dep) => chunk2.deps.has(dep)); + + for (const dep of commonDeps) { + chunk.deps.delete(dep); + chunk2.deps.delete(dep); + } + + commonDependencies.push(...commonDeps); + } + } + } + + // If common dependencies were found, extract them to the shared chunk. + if (commonDependencies.length) { + const commonDependenciesUnique = [...new Set(commonDependencies)]; + return new Chunk('/__common.js', commonDependenciesUnique, graph, options, false, true); + } + + return undefined; +} + +function deduplicateAgainstKnownChunks( + chunks: Set, + entryChunk: Chunk, + commonChunk: Chunk | undefined +): void { + // TODO: Optimize this pass more. + // Remove all dependencies from async chunks that are already in the common chunk. + for (const chunk of [...chunks.values()]) { + if (!chunk.isEntry && chunk !== commonChunk) { + for (const dep of chunk.deps) { + if (entryChunk.deps.has(dep) || commonChunk?.deps.has(dep)) { + chunk.deps.delete(dep); + } + } + } + } +} + +function removeEmptyChunks(chunks: Set): void { + for (const chunk of [...chunks.values()]) { + if (!chunk.isEntry && chunk.deps.size === 0) { + chunks.delete(chunk); + } + } +} + +function createRuntimeChunk( + entryChunk: Chunk, + chunks: Set, + graph: ReadOnlyGraph, + options: SerializerOptions +): void { + const runtimeChunk = new Chunk('/__expo-metro-runtime.js', [], graph, options, false, true); + + // All premodules (including metro-runtime) should load first + for (const preModule of entryChunk.preModules) { + runtimeChunk.preModules.add(preModule); + } + entryChunk.preModules = new Set(); + + for (const chunk of chunks) { + // Runtime chunk has to load before any other a.k.a all chunks require it. + chunk.requiredChunks.add(runtimeChunk); + } + chunks.add(runtimeChunk); +} + async function serializeChunksAsync( chunks: Set, serializerConfig: Partial, @@ -810,21 +812,3 @@ async function serializeChunksAsync( return jsAssets; } - -export function getSortedModules( - modules: Module[], - { - createModuleId, - }: { - createModuleId: (path: string) => number; - } -): readonly Module[] { - // Assign IDs to modules in a consistent order - for (const module of modules) { - createModuleId(module.path); - } - // Sort by IDs - return modules.sort( - (a: Module, b: Module) => createModuleId(a.path) - createModuleId(b.path) - ); -} From 91942280befee67e05b43341144801f64001cd33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?nishan=20=28o=5E=E2=96=BD=5Eo=29?= Date: Tue, 24 Feb 2026 05:25:48 +0530 Subject: [PATCH 2/2] [ui][iOS] - `ConfirmationDialog` component (#43366) --- .../UI/ConfirmationDialogScreen.ios.tsx | 135 ++++++++++++++ .../src/screens/UI/UIScreen.ios.tsx | 8 + .../sdk/ui/swift-ui/confirmationdialog.mdx | 167 ++++++++++++++++++ .../expo-ui/swift-ui/confirmationdialog.json | 1 + packages/expo-ui/CHANGELOG.md | 1 + .../swift-ui/ConfirmationDialog/index.d.ts | 47 +++++ .../ConfirmationDialog/index.d.ts.map | 1 + packages/expo-ui/build/swift-ui/index.d.ts | 1 + .../expo-ui/build/swift-ui/index.d.ts.map | 2 +- .../ConfirmationDialog.swift | 65 +++++++ .../ConfirmationDialogComponents.swift | 26 +++ .../ConfirmationDialogProps.swift | 15 ++ .../ios/Convertibles/VisibilityOptions.swift | 19 ++ packages/expo-ui/ios/ExpoUIModule.swift | 4 + .../ios/Modifiers/PresentationModifiers.swift | 19 +- .../ios/Modifiers/ViewModifierRegistry.swift | 18 +- .../src/swift-ui/ConfirmationDialog/index.tsx | 98 ++++++++++ packages/expo-ui/src/swift-ui/index.tsx | 1 + tools/src/commands/GenerateDocsAPIData.ts | 1 + 19 files changed, 593 insertions(+), 36 deletions(-) create mode 100644 apps/native-component-list/src/screens/UI/ConfirmationDialogScreen.ios.tsx create mode 100644 docs/pages/versions/unversioned/sdk/ui/swift-ui/confirmationdialog.mdx create mode 100644 docs/public/static/data/unversioned/expo-ui/swift-ui/confirmationdialog.json create mode 100644 packages/expo-ui/build/swift-ui/ConfirmationDialog/index.d.ts create mode 100644 packages/expo-ui/build/swift-ui/ConfirmationDialog/index.d.ts.map create mode 100644 packages/expo-ui/ios/ConfirmationDialog/ConfirmationDialog.swift create mode 100644 packages/expo-ui/ios/ConfirmationDialog/ConfirmationDialogComponents.swift create mode 100644 packages/expo-ui/ios/ConfirmationDialog/ConfirmationDialogProps.swift create mode 100644 packages/expo-ui/ios/Convertibles/VisibilityOptions.swift create mode 100644 packages/expo-ui/src/swift-ui/ConfirmationDialog/index.tsx diff --git a/apps/native-component-list/src/screens/UI/ConfirmationDialogScreen.ios.tsx b/apps/native-component-list/src/screens/UI/ConfirmationDialogScreen.ios.tsx new file mode 100644 index 00000000000000..b228c7a46b1a70 --- /dev/null +++ b/apps/native-component-list/src/screens/UI/ConfirmationDialogScreen.ios.tsx @@ -0,0 +1,135 @@ +import { Button, ConfirmationDialog, Form, Host, Section, Text } from '@expo/ui/swift-ui'; +import { foregroundStyle } from '@expo/ui/swift-ui/modifiers'; +import React, { useState } from 'react'; + +export default function ConfirmationDialogScreen() { + const [showBasic, setShowBasic] = useState(false); + const [showDestructive, setShowDestructive] = useState(false); + const [showWithMessage, setShowWithMessage] = useState(false); + const [showHiddenTitle, setShowHiddenTitle] = useState(false); + const [lastAction, setLastAction] = useState('None'); + + return ( + +
+
+ {lastAction} +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+
+
+ ); +} + +ConfirmationDialogScreen.navigationOptions = { + title: 'ConfirmationDialog', +}; diff --git a/apps/native-component-list/src/screens/UI/UIScreen.ios.tsx b/apps/native-component-list/src/screens/UI/UIScreen.ios.tsx index 39894553d7166a..398e296722c8cb 100644 --- a/apps/native-component-list/src/screens/UI/UIScreen.ios.tsx +++ b/apps/native-component-list/src/screens/UI/UIScreen.ios.tsx @@ -74,6 +74,14 @@ export const UIScreens = [ return optionalRequire(() => require('./MenuScreen')); }, }, + { + name: 'ConfirmationDialog component', + route: 'ui/confirmation-dialog', + options: {}, + getComponent() { + return optionalRequire(() => require('./ConfirmationDialogScreen')); + }, + }, { name: 'ContextMenu component', route: 'ui/context-menu', diff --git a/docs/pages/versions/unversioned/sdk/ui/swift-ui/confirmationdialog.mdx b/docs/pages/versions/unversioned/sdk/ui/swift-ui/confirmationdialog.mdx new file mode 100644 index 00000000000000..b74a69cd3e17eb --- /dev/null +++ b/docs/pages/versions/unversioned/sdk/ui/swift-ui/confirmationdialog.mdx @@ -0,0 +1,167 @@ +--- +title: ConfirmationDialog +description: A SwiftUI ConfirmationDialog component for presenting confirmation prompts. +sourceCodeUrl: 'https://github.com/expo/expo/tree/main/packages/expo-ui' +packageName: '@expo/ui' +platforms: ['ios', 'tvos'] +--- + +import APISection from '~/components/plugins/APISection'; +import { APIInstallSection } from '~/components/plugins/InstallSection'; + +Expo UI ConfirmationDialog matches the official SwiftUI [confirmationDialog API]() and presents an action sheet-style dialog with a title, actions, and an optional message. + +## Installation + + + +## Usage + +### Basic confirmation dialog + +Use `ConfirmationDialog.Trigger` to define the visible element and `ConfirmationDialog.Actions` to provide the dialog buttons. + +```tsx BasicConfirmationDialogExample.tsx +import { useState } from 'react'; +import { Host, ConfirmationDialog, Button, Text } from '@expo/ui/swift-ui'; + +export default function BasicConfirmationDialogExample() { + const [isPresented, setIsPresented] = useState(false); + + return ( + + + +