authorgravatar for julius0216@outlook.comJulius Marminge <julius0216@outlook.com> 2026-09-20 23:24:41-07:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2026-09-20 23:24:41-07:00
log1eeeabb26f654c679efe265cd03edf69c3df3a6f
treeb8d2ba22637ac70fb1b87a4f6b6e709022213a6b
parent5781b5240bd5d2e21c651f6b228975ac40cbd67b
signature Signed by PGP key B5690EEEBB952194

fix(mobile): use a proper pull request icon on iOS (#12855)


1 files changed, 17 insertions(+), 2 deletions(-)

apps/mobile/src/components/AppSymbol.ios.tsx+17-2
......@@ -1,3 +1,4 @@
1import IconGitPullRequest from "@tabler/icons-react-native/IconGitPullRequest";
12import { SymbolView as ExpoSymbolView } from "expo-symbols";
23import { withUniwind } from "uniwind";
34import type { AppSymbolViewProps } from "./AppSymbol";
......@@ -6,10 +7,24 @@ export type { SFSymbol } from "expo-symbols";
67export type { AppSymbolName } from "./AppSymbol";
78
89/**
9 * Keep the iOS implementation isolated from the Android Tabler fallback so
10 * Metro does not initialize the icon package when iOS renders SF Symbols.
10 * Use SF Symbols on iOS except for pull requests, which have no matching
11 * native glyph. Import only that Tabler icon to keep the bundle small.
1112 */
1213function AppSymbolView(props: AppSymbolViewProps) {
14 const name = typeof props.name === "string" ? props.name : props.name.ios;
15 if (name === "arrow.triangle.pull") {
16 return (
17 <IconGitPullRequest
18 accessibilityLabel={props.accessibilityLabel}
19 color={props.tintColor}
20 size={props.size}
21 strokeWidth={2}
22 style={props.style}
23 testID={props.testID}
24 />
25 );
26 }
27
1328 return <ExpoSymbolView {...props} />;
1429}
1530