From eb97ef601037fcbc51ba13d15eeb53824cd3d590 Mon Sep 17 00:00:00 2001 From: Youssef Henna Date: Sun, 12 Apr 2026 13:56:56 +0200 Subject: [PATCH 1/4] make expo-fs peer dep --- packages/core/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/core/package.json b/packages/core/package.json index 070dd6424..86514e33b 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -56,7 +56,6 @@ "date-fns": "^4.1.0", "dateformat": "^5.0.3", "expo-av": "~16.0.8", - "expo-file-system": "~19.0.21", "expo-image": "~3.0.11", "lodash.isequal": "^4.5.0", "lodash.isnumber": "^3.0.3", @@ -87,7 +86,8 @@ "uuid": "^11.0.3" }, "peerDependencies": { - "react-native-avoid-softinput": "^4.0.1" + "react-native-avoid-softinput": "^4.0.1", + "expo-file-system": "~19.0.21" }, "peerDependenciesMeta": { "react-native-avoid-softinput": { From 19265e9d76dd4537cfd1c17c43863deeab544696 Mon Sep 17 00:00:00 2001 From: Youssef Henna Date: Sun, 12 Apr 2026 14:09:13 +0200 Subject: [PATCH 2/4] import as type --- packages/core/package.json | 3 +-- .../core/src/components/MediaPlayer/MediaPlayerCommon.ts | 6 +++++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/core/package.json b/packages/core/package.json index 86514e33b..d3434953e 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -86,8 +86,7 @@ "uuid": "^11.0.3" }, "peerDependencies": { - "react-native-avoid-softinput": "^4.0.1", - "expo-file-system": "~19.0.21" + "react-native-avoid-softinput": "^4.0.1" }, "peerDependenciesMeta": { "react-native-avoid-softinput": { diff --git a/packages/core/src/components/MediaPlayer/MediaPlayerCommon.ts b/packages/core/src/components/MediaPlayer/MediaPlayerCommon.ts index 05cd95d05..e19460cac 100644 --- a/packages/core/src/components/MediaPlayer/MediaPlayerCommon.ts +++ b/packages/core/src/components/MediaPlayer/MediaPlayerCommon.ts @@ -1,5 +1,5 @@ import { AVPlaybackSource, AVPlaybackStatus } from "expo-av"; -import { File, Paths } from "expo-file-system"; +import type { File as FileType, Paths as PathsType } from "expo-file-system"; import { v4 as uuid } from "uuid"; import { Platform } from "react-native"; import React from "react"; @@ -65,6 +65,10 @@ export async function normalizeBase64Source( source: AVPlaybackSource, type: "audio" | "video" ): Promise { + const expoFs = require("expo-file-system"); + const File: typeof FileType = expoFs.File; + const Paths: typeof PathsType = expoFs.Paths; + const uri: string | undefined = (source as any)?.uri; if (Platform.OS === "ios" && uri && !uri.match(URL_REGEX)) { From 9bc441c203ccfb658e5cd239751814795b1c10fc Mon Sep 17 00:00:00 2001 From: Youssef Henna Date: Sun, 12 Apr 2026 14:19:02 +0200 Subject: [PATCH 3/4] dyanmic import --- .../core/src/components/MediaPlayer/MediaPlayerCommon.ts | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/packages/core/src/components/MediaPlayer/MediaPlayerCommon.ts b/packages/core/src/components/MediaPlayer/MediaPlayerCommon.ts index e19460cac..ea219cb26 100644 --- a/packages/core/src/components/MediaPlayer/MediaPlayerCommon.ts +++ b/packages/core/src/components/MediaPlayer/MediaPlayerCommon.ts @@ -1,5 +1,4 @@ import { AVPlaybackSource, AVPlaybackStatus } from "expo-av"; -import type { File as FileType, Paths as PathsType } from "expo-file-system"; import { v4 as uuid } from "uuid"; import { Platform } from "react-native"; import React from "react"; @@ -65,9 +64,7 @@ export async function normalizeBase64Source( source: AVPlaybackSource, type: "audio" | "video" ): Promise { - const expoFs = require("expo-file-system"); - const File: typeof FileType = expoFs.File; - const Paths: typeof PathsType = expoFs.Paths; + const { File, Paths } = await import("expo-file-system"); const uri: string | undefined = (source as any)?.uri; From 9b64287cc8f37987a9597c5a7be6f6d5de6728f6 Mon Sep 17 00:00:00 2001 From: Youssef Henna Date: Sun, 12 Apr 2026 14:19:36 +0200 Subject: [PATCH 4/4] inside if --- packages/core/src/components/MediaPlayer/MediaPlayerCommon.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/core/src/components/MediaPlayer/MediaPlayerCommon.ts b/packages/core/src/components/MediaPlayer/MediaPlayerCommon.ts index ea219cb26..7aba6f632 100644 --- a/packages/core/src/components/MediaPlayer/MediaPlayerCommon.ts +++ b/packages/core/src/components/MediaPlayer/MediaPlayerCommon.ts @@ -64,11 +64,11 @@ export async function normalizeBase64Source( source: AVPlaybackSource, type: "audio" | "video" ): Promise { - const { File, Paths } = await import("expo-file-system"); - const uri: string | undefined = (source as any)?.uri; if (Platform.OS === "ios" && uri && !uri.match(URL_REGEX)) { + const { File, Paths } = await import("expo-file-system"); + const defaultMimeType = type === "audio" ? "wav" : "mp4"; const mimeType = uri.startsWith(`data:${type}/`) ? uri.substring(`data:${type}/`.length, uri.indexOf(";")) //Ex: extract 'mp4' from 'data:video/mp4;base64,....'