Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
66273c1
Revert "Merge pull request #75219 from Expensify/revert-66793-Guccio1…
Guccio163 Nov 16, 2025
3cdde6f
bump expo-video version
Guccio163 Nov 16, 2025
8d877db
pod install standalone
Guccio163 Nov 16, 2025
3297106
fix patch name after expo-video version bump
Guccio163 Nov 16, 2025
8064a62
comment param-reassign
Guccio163 Nov 17, 2025
adee8b9
fix displaying spinner and hiding controls
Guccio163 Nov 17, 2025
55ca561
safeguard duration NaN possibility
Guccio163 Nov 17, 2025
415456c
Merge branch 'main' of github.com:software-mansion-labs/expensify-app…
Guccio163 Nov 18, 2025
bab6e60
offline state handling issues
Guccio163 Nov 24, 2025
4aba116
offline issues solutions
Guccio163 Nov 24, 2025
c929be7
fix for infinite loading
Guccio163 Nov 24, 2025
cff0549
setIsFirstLoad cleanup
Guccio163 Nov 24, 2025
743d862
Merge branch 'main' of github.com:software-mansion-labs/expensify-app…
Guccio163 Nov 24, 2025
c6ced8a
style
Guccio163 Nov 24, 2025
27d989e
last conflict
Guccio163 Nov 24, 2025
feeca23
cleanup
Guccio163 Nov 24, 2025
9f8f2b2
dont push Mobile Expensify
Guccio163 Nov 24, 2025
20b8218
Merge branch 'main' of github.com:software-mansion-labs/expensify-app…
Guccio163 Nov 27, 2025
6e9db16
fixed playing after offline bugs and no autoplay when local source
Guccio163 Dec 1, 2025
b9165d2
play not working for first time
Guccio163 Dec 1, 2025
8dcd39b
loading logic refactor
Guccio163 Dec 2, 2025
25f8cfa
Merge branch 'main' of github.com:software-mansion-labs/expensify-app…
Guccio163 Dec 2, 2025
c53fe23
Merge branch 'main' of github.com:software-mansion-labs/expensify-app…
Guccio163 Dec 4, 2025
211a151
shareExtension thumbnail fix
Guccio163 Dec 5, 2025
a1d7399
popoverMenu working
Guccio163 Dec 5, 2025
5c68e37
Merge branch 'main' of github.com:software-mansion-labs/expensify-app…
Guccio163 Dec 5, 2025
9033d61
typescript
Guccio163 Dec 5, 2025
dab01fe
Merge branch 'main' of github.com:software-mansion-labs/expensify-app…
Guccio163 Dec 8, 2025
49fc24f
fix loading before playing and context types
Guccio163 Dec 8, 2025
4751e5c
isEnded redundancy after adding playerStatus
Guccio163 Dec 8, 2025
134cc2e
fix seekPosition after ending
Guccio163 Dec 8, 2025
334e946
fix setting isEnded
Guccio163 Dec 8, 2025
78ecd5f
Merge branch 'main' of github.com:software-mansion-labs/expensify-app…
Guccio163 Dec 9, 2025
5dffb1d
Merge branch 'main' of github.com:software-mansion-labs/expensify-app…
Guccio163 Dec 10, 2025
c684266
adding updatePlayerStatus for react compiler
Guccio163 Dec 10, 2025
f60e328
prettier
Guccio163 Dec 10, 2025
83e5af0
use onReconnect, use fullscreenOptions
Guccio163 Dec 10, 2025
5b4b3ac
Merge branch 'main' of github.com:software-mansion-labs/expensify-app…
Guccio163 Dec 11, 2025
dd07a8b
back to allowFullscreen
Guccio163 Dec 11, 2025
406f99f
Merge branch 'main' of github.com:software-mansion-labs/expensify-app…
Guccio163 Dec 22, 2025
24e3bfd
Merge branch 'main' of github.com:software-mansion-labs/expensify-app…
Guccio163 Jan 9, 2026
ba4ffa0
Merge branch 'main' of github.com:software-mansion-labs/expensify-app…
Guccio163 Jan 12, 2026
6c6b765
prettier
Guccio163 Jan 12, 2026
fdd85cc
remove react-compiler rule comment VolumeContext
Guccio163 Jan 12, 2026
f3b285d
Expensicons
Guccio163 Jan 12, 2026
d94443e
Merge branch 'main' of github.com:software-mansion-labs/expensify-app…
Guccio163 Jan 13, 2026
400f307
Merge branch 'main' of github.com:software-mansion-labs/expensify-app…
Guccio163 Jan 15, 2026
b46d7e0
Merge branch 'main' of github.com:software-mansion-labs/expensify-app…
Guccio163 Jan 15, 2026
8fb3c09
Merge branch 'main' of github.com:software-mansion-labs/expensify-app…
Guccio163 Jan 19, 2026
71af214
offline on cached videos
Guccio163 Jan 19, 2026
4712c8e
safer way of resetting sourceURL
Guccio163 Jan 19, 2026
6ab805d
Add shouldMaintainFocusAfterSubItemSelect prop to PopoverMenu
blazejkustra Jan 19, 2026
601c6e1
not show error icon when error
Guccio163 Jan 19, 2026
5bab83c
fix lint rule
Guccio163 Jan 19, 2026
cf36a33
Merge branch 'Guccio163/expo-video-after-revert' of github.com:softwa…
Guccio163 Jan 19, 2026
b237666
Merge branch 'main' of github.com:software-mansion-labs/expensify-app…
Guccio163 Jan 20, 2026
54b9006
Merge branch 'main' of github.com:software-mansion-labs/expensify-app…
Guccio163 Jan 20, 2026
ef66619
Merge branch 'main' of github.com:software-mansion-labs/expensify-app…
Guccio163 Jan 20, 2026
f8d7bf7
Merge branch 'main' of github.com:Expensify/App into Guccio163/expo-v…
blazejkustra Jan 21, 2026
f6dff39
Bump amount of allowed warnings in lint script
blazejkustra Jan 21, 2026
8dd811b
Merge branch 'main' of github.com:software-mansion-labs/expensify-app…
Guccio163 Jan 22, 2026
fef0724
Merge branch 'main' of github.com:Expensify/App into Guccio163/expo-v…
blazejkustra Jan 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
111 changes: 111 additions & 0 deletions __mocks__/expo-video.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
/* eslint-disable no-underscore-dangle */
/* eslint-disable @typescript-eslint/naming-convention */
/* eslint-disable @typescript-eslint/no-unused-vars */
// eslint-disable-next-line no-restricted-imports
import React, {forwardRef, useRef} from 'react';
import type {ForwardedRef} from 'react';
import {View} from 'react-native';
import type {ViewProps} from 'react-native';

type MutedChangeEventPayload = {
isMuted: boolean;
};

type PlayingChangeEventPayload = {
isPlaying: boolean;
};

type StatusChangeEventPayload = {
status: string;
};

type TimeUpdateEventPayload = {
currentTime: number;
};

type VideoPlayer = {
/** lightweight “state” */
isPlaying: boolean;
isMuted: boolean;
currentTime: number;

/** controls */
play: jest.Mock<void, []>;
pause: jest.Mock<void, []>;
replace: jest.Mock<void, [unknown?]>;
seekTo: jest.Mock<void, [number]>;
setIsMuted: jest.Mock<void, [boolean]>;

/** simple event API */
addListener: jest.Mock<{remove: () => void}, [string, (payload: unknown) => void]>;
};

function createMockPlayer(): VideoPlayer {
let _isPlaying = false;
let _isMuted = false;
let _currentTime = 0;

return {
get isPlaying() {
return _isPlaying;
},
get isMuted() {
return _isMuted;
},
get currentTime() {
return _currentTime;
},

play: jest.fn(() => {
_isPlaying = true;
}),
pause: jest.fn(() => {
_isPlaying = false;
}),
replace: jest.fn((_opts?: unknown) => {
// no-op; exist to satisfy code that calls it
}),
seekTo: jest.fn((time: number) => {
_currentTime = time;
}),
setIsMuted: jest.fn((muted: boolean) => {
_isMuted = muted;
}),

addListener: jest.fn((_event: string, _cb: (payload: unknown) => void) => {
// minimal, enough for code that calls .remove()
return {remove: () => {}};
}),
};
}

/**
* Mocked hook – returns a stable mock player instance.
* Signature accepts any args to match real API calls.
*/
function useVideoPlayer(..._args: unknown[]): VideoPlayer {
const ref = useRef<VideoPlayer | null>(null);
if (!ref.current) {
ref.current = createMockPlayer();
}
return ref.current;
}

/**
* Simple stand-in for the native VideoView.
* Accepts a `player` prop to mirror the real component.
*/
type VideoViewProps = ViewProps & {player?: VideoPlayer};

const VideoView = forwardRef((props: VideoViewProps, ref: ForwardedRef<View>) => (
// eslint-disable-next-line react/jsx-props-no-spreading
<View
ref={ref}
accessibilityLabel="MockVideoView"
// eslint-disable-next-line react/jsx-props-no-spreading
{...props}
/>
));

export {useVideoPlayer, VideoView};
export type {MutedChangeEventPayload, PlayingChangeEventPayload, StatusChangeEventPayload, TimeUpdateEventPayload};
1 change: 1 addition & 0 deletions config/webpack/webpack.common.ts
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ const includeModules = [
'@react-native/assets',
'expo',
'expo-av',
'expo-video',
'expo-image-manipulator',
'expo-modules-core',
].join('|');
Expand Down
1 change: 1 addition & 0 deletions cspell.json
Original file line number Diff line number Diff line change
Expand Up @@ -725,6 +725,7 @@
"unhold",
"Unlaminated",
"Unmigrated",
"unmuting",
"unredacted",
"unscrollable",
"unsubmitted",
Expand Down
6 changes: 6 additions & 0 deletions ios/Podfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -173,6 +173,8 @@ PODS:
- Yoga
- ExpoSecureStore (14.2.4):
- ExpoModulesCore
- ExpoVideo (3.0.12):
- ExpoModulesCore
- ExpoStoreReview (9.0.8):
- ExpoModulesCore
- fast_float (8.0.0)
Expand Down Expand Up @@ -4135,6 +4137,7 @@ DEPENDENCIES:
- ExpoLocation (from `../node_modules/expo-location/ios`)
- ExpoModulesCore (from `../node_modules/expo-modules-core`)
- ExpoSecureStore (from `../node_modules/expo-secure-store/ios`)
- ExpoVideo (from `../node_modules/expo-video/ios`)
- ExpoStoreReview (from `../node_modules/expo-store-review/ios`)
- fast_float (from `../node_modules/react-native/third-party-podspecs/fast_float.podspec`)
- FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`)
Expand Down Expand Up @@ -4349,6 +4352,8 @@ EXTERNAL SOURCES:
:path: "../node_modules/expo-modules-core"
ExpoSecureStore:
:path: "../node_modules/expo-secure-store/ios"
ExpoVideo:
:path: "../node_modules/expo-video/ios"
ExpoStoreReview:
:path: "../node_modules/expo-store-review/ios"
fast_float:
Expand Down Expand Up @@ -4626,6 +4631,7 @@ SPEC CHECKSUMS:
ExpoLocation: 93d7faa0c2adbd5a04686af0c1a61bc6ed3ee2f7
ExpoModulesCore: e1b5401a7af4c7dbf4fe26b535918a72c6ed8a7b
ExpoSecureStore: 3f1b632d6d40bcc62b4983ef9199cd079592a50a
ExpoVideo: 6907c4872886dce2720d3af20782eb6ee7734110
ExpoStoreReview: 15f19e0d6cb6e00330ba1b356485bf47ef19c39a
fast_float: b32c788ed9c6a8c584d114d0047beda9664e7cc6
FBLazyVector: 941bef1c8eeabd9fe1f501e30a5220beee913886
Expand Down
12 changes: 12 additions & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@
"test:debug": "TZ=utc NODE_OPTIONS='--inspect-brk --experimental-vm-modules' jest --runInBand",
"perf-test": "NODE_OPTIONS=--experimental-vm-modules npx reassure",
"typecheck": "NODE_OPTIONS=--max_old_space_size=8192 tsc",
"lint": "NODE_OPTIONS=--max_old_space_size=8192 eslint . --max-warnings=384 --cache --cache-location=node_modules/.cache/eslint --cache-strategy content --concurrency=auto",
"lint": "NODE_OPTIONS=--max_old_space_size=8192 eslint . --max-warnings=398 --cache --cache-location=node_modules/.cache/eslint --cache-strategy content --concurrency=auto",
"lint-changed": "NODE_OPTIONS=--max_old_space_size=8192 ./scripts/lintChanged.sh",
"check-lazy-loading": "ts-node scripts/checkLazyLoading.ts",
"lint-watch": "npx eslint-watch --watch --changed",
Expand Down Expand Up @@ -142,6 +142,7 @@
"expo-location": "^19.0.7",
"expo-modules-core": "3.0.18",
"expo-secure-store": "~14.2.4",
"expo-video": "^3.0.12",
"expo-store-review": "~9.0.8",
"expo-task-manager": "~14.0.9",
"fast-equals": "^5.2.2",
Expand Down
26 changes: 0 additions & 26 deletions patches/expo-av/details.md

This file was deleted.

Loading
Loading