@oxy.so/services 11.17.0 → 12.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/assets/assets/one/floral.jpg.d.ts +1 -1
- package/lib/commonjs/ui/client.js +13 -0
- package/lib/commonjs/ui/client.js.map +1 -1
- package/lib/commonjs/ui/components/OxyAuthChooser.js +1 -6
- package/lib/commonjs/ui/components/OxyAuthChooser.js.map +1 -1
- package/lib/commonjs/ui/components/OxyProvider.js +6 -5
- package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
- package/lib/commonjs/ui/components/ProfileButton.js +2 -4
- package/lib/commonjs/ui/components/ProfileButton.js.map +1 -1
- package/lib/commonjs/ui/components/SafeAreaRoot.js +139 -0
- package/lib/commonjs/ui/components/SafeAreaRoot.js.map +1 -0
- package/lib/commonjs/ui/components/fileManagement/FileViewer.js +17 -14
- package/lib/commonjs/ui/components/fileManagement/FileViewer.js.map +1 -1
- package/lib/commonjs/ui/components/photogrid/JustifiedPhotoGrid.js +10 -17
- package/lib/commonjs/ui/components/photogrid/JustifiedPhotoGrid.js.map +1 -1
- package/lib/commonjs/ui/index.js +0 -37
- package/lib/commonjs/ui/index.js.map +1 -1
- package/lib/commonjs/ui/navigation/accountDialogManager.js +5 -4
- package/lib/commonjs/ui/navigation/accountDialogManager.js.map +1 -1
- package/lib/commonjs/ui/navigation/surfaces.js +2 -2
- package/lib/commonjs/ui/one-video.js +3 -2
- package/lib/commonjs/ui/one-video.js.map +1 -1
- package/lib/commonjs/ui/screens/AvatarCropScreen.js +39 -25
- package/lib/commonjs/ui/screens/AvatarCropScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/EditProfileFieldScreen.js +4 -2
- package/lib/commonjs/ui/screens/EditProfileFieldScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/OxyOneScreen.js +3 -2
- package/lib/commonjs/ui/screens/OxyOneScreen.js.map +1 -1
- package/lib/commonjs/ui/utils/imageSize.js +31 -0
- package/lib/commonjs/ui/utils/imageSize.js.map +1 -0
- package/lib/commonjs/ui/utils/imageSize.native.js +31 -0
- package/lib/commonjs/ui/utils/imageSize.native.js.map +1 -0
- package/lib/module/assets/assets/one/floral.jpg.d.ts +1 -1
- package/lib/module/ui/client.js +3 -0
- package/lib/module/ui/client.js.map +1 -1
- package/lib/module/ui/components/OxyAuthChooser.js +1 -6
- package/lib/module/ui/components/OxyAuthChooser.js.map +1 -1
- package/lib/module/ui/components/OxyProvider.js +6 -5
- package/lib/module/ui/components/OxyProvider.js.map +1 -1
- package/lib/module/ui/components/ProfileButton.js +2 -4
- package/lib/module/ui/components/ProfileButton.js.map +1 -1
- package/lib/module/ui/components/SafeAreaRoot.js +135 -0
- package/lib/module/ui/components/SafeAreaRoot.js.map +1 -0
- package/lib/module/ui/components/fileManagement/FileViewer.js +18 -15
- package/lib/module/ui/components/fileManagement/FileViewer.js.map +1 -1
- package/lib/module/ui/components/photogrid/JustifiedPhotoGrid.js +11 -18
- package/lib/module/ui/components/photogrid/JustifiedPhotoGrid.js.map +1 -1
- package/lib/module/ui/index.js +5 -3
- package/lib/module/ui/index.js.map +1 -1
- package/lib/module/ui/navigation/accountDialogManager.js +5 -4
- package/lib/module/ui/navigation/accountDialogManager.js.map +1 -1
- package/lib/module/ui/navigation/surfaces.js +2 -2
- package/lib/module/ui/one-video.js +4 -3
- package/lib/module/ui/one-video.js.map +1 -1
- package/lib/module/ui/screens/AvatarCropScreen.js +41 -25
- package/lib/module/ui/screens/AvatarCropScreen.js.map +1 -1
- package/lib/module/ui/screens/EditProfileFieldScreen.js +5 -3
- package/lib/module/ui/screens/EditProfileFieldScreen.js.map +1 -1
- package/lib/module/ui/screens/OxyOneScreen.js +4 -3
- package/lib/module/ui/screens/OxyOneScreen.js.map +1 -1
- package/lib/module/ui/utils/imageSize.js +26 -0
- package/lib/module/ui/utils/imageSize.js.map +1 -0
- package/lib/module/ui/utils/imageSize.native.js +26 -0
- package/lib/module/ui/utils/imageSize.native.js.map +1 -0
- package/lib/typescript/assets/one/floral.jpg.d.ts +1 -1
- package/lib/typescript/commonjs/ui/client.d.ts +3 -0
- package/lib/typescript/commonjs/ui/client.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/OxyAuthChooser.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/OxyProvider.d.ts +3 -2
- package/lib/typescript/commonjs/ui/components/OxyProvider.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/ProfileButton.d.ts +0 -2
- package/lib/typescript/commonjs/ui/components/ProfileButton.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/SafeAreaRoot.d.ts +28 -0
- package/lib/typescript/commonjs/ui/components/SafeAreaRoot.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/components/fileManagement/FileViewer.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/photogrid/JustifiedPhotoGrid.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/navigation/accountDialogManager.d.ts +5 -5
- package/lib/typescript/commonjs/ui/navigation/accountDialogManager.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/one-video.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/AvatarCropScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/EditProfileFieldScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/OxyOneScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/utils/imageSize.d.ts +6 -0
- package/lib/typescript/commonjs/ui/utils/imageSize.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/utils/imageSize.native.d.ts +6 -0
- package/lib/typescript/commonjs/ui/utils/imageSize.native.d.ts.map +1 -0
- package/lib/typescript/module/ui/client.d.ts +3 -0
- package/lib/typescript/module/ui/client.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/OxyAuthChooser.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/OxyProvider.d.ts +3 -2
- package/lib/typescript/module/ui/components/OxyProvider.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/ProfileButton.d.ts +0 -2
- package/lib/typescript/module/ui/components/ProfileButton.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/SafeAreaRoot.d.ts +28 -0
- package/lib/typescript/module/ui/components/SafeAreaRoot.d.ts.map +1 -0
- package/lib/typescript/module/ui/components/fileManagement/FileViewer.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/photogrid/JustifiedPhotoGrid.d.ts.map +1 -1
- package/lib/typescript/module/ui/index.d.ts.map +1 -1
- package/lib/typescript/module/ui/navigation/accountDialogManager.d.ts +5 -5
- package/lib/typescript/module/ui/navigation/accountDialogManager.d.ts.map +1 -1
- package/lib/typescript/module/ui/one-video.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/AvatarCropScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/EditProfileFieldScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/OxyOneScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/utils/imageSize.d.ts +6 -0
- package/lib/typescript/module/ui/utils/imageSize.d.ts.map +1 -0
- package/lib/typescript/module/ui/utils/imageSize.native.d.ts +6 -0
- package/lib/typescript/module/ui/utils/imageSize.native.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/assets/one/floral.jpg.d.ts +1 -1
- package/src/ui/client.ts +8 -0
- package/src/ui/components/OxyAuthChooser.tsx +1 -6
- package/src/ui/components/OxyProvider.tsx +7 -6
- package/src/ui/components/ProfileButton.tsx +2 -12
- package/src/ui/components/SafeAreaRoot.tsx +123 -0
- package/src/ui/components/__tests__/SafeAreaRoot.test.tsx +162 -0
- package/src/ui/components/fileManagement/FileViewer.tsx +18 -13
- package/src/ui/components/photogrid/JustifiedPhotoGrid.tsx +13 -24
- package/src/ui/index.ts +5 -4
- package/src/ui/navigation/accountDialogManager.ts +5 -5
- package/src/ui/navigation/surfaces.ts +2 -2
- package/src/ui/one-video.tsx +3 -2
- package/src/ui/screens/AvatarCropScreen.tsx +30 -25
- package/src/ui/screens/EditProfileFieldScreen.tsx +7 -2
- package/src/ui/screens/OxyOneScreen.tsx +4 -3
- package/src/ui/utils/__tests__/imageSize.test.ts +61 -0
- package/src/ui/utils/imageSize.native.ts +26 -0
- package/src/ui/utils/imageSize.ts +26 -0
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* The safe-area root `OxyProvider` mounts around everything it renders.
|
|
5
|
+
*
|
|
6
|
+
* On iOS and Android it is react-native-safe-area-context's own
|
|
7
|
+
* `SafeAreaProvider`, which measures the native root view.
|
|
8
|
+
*
|
|
9
|
+
* On web it does NOT measure. From react-native-safe-area-context 5.9, the web
|
|
10
|
+
* provider measures its own element and reports
|
|
11
|
+
* `windowInsets.bottom - (innerHeight - rect.bottom)` as the bottom inset with
|
|
12
|
+
* no upper clamp (likewise `top - rect.top`). `OxyProvider` wraps the app's
|
|
13
|
+
* whole document, and on a page that scrolls that element is taller than the
|
|
14
|
+
* viewport, so everything below the fold became bottom inset: an 844px phone
|
|
15
|
+
* viewport with a 2690px page reported a ~1850px inset, and the mobile account
|
|
16
|
+
* dialog laid itself out empty. Web therefore gets the WINDOW's metrics — what
|
|
17
|
+
* every version before 5.9 reported for a root provider:
|
|
18
|
+
*
|
|
19
|
+
* - insets: CSS `env(safe-area-inset-*)`, read from one fixed, hidden probe
|
|
20
|
+
* after mount (zero during server rendering and hydration);
|
|
21
|
+
* - frame: the viewport (`useWindowDimensions`), never the document's height.
|
|
22
|
+
*
|
|
23
|
+
* Bloom raises its own web insets to the same `env()` values
|
|
24
|
+
* (`useCssSafeAreaInsets`), so nothing pads twice.
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
import { useMemo, useSyncExternalStore } from 'react';
|
|
28
|
+
import { Platform, StyleSheet, useWindowDimensions, View } from 'react-native';
|
|
29
|
+
import { SafeAreaFrameContext, SafeAreaInsetsContext, SafeAreaProvider } from 'react-native-safe-area-context';
|
|
30
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
31
|
+
const styles = StyleSheet.create({
|
|
32
|
+
fill: {
|
|
33
|
+
flex: 1
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
export function SafeAreaRoot({
|
|
37
|
+
children
|
|
38
|
+
}) {
|
|
39
|
+
if (Platform.OS === 'web') return /*#__PURE__*/_jsx(WindowSafeAreaProvider, {
|
|
40
|
+
children: children
|
|
41
|
+
});
|
|
42
|
+
return /*#__PURE__*/_jsx(SafeAreaProvider, {
|
|
43
|
+
children: children
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/** Web: window metrics, provided through the library's own contexts. */
|
|
48
|
+
function WindowSafeAreaProvider({
|
|
49
|
+
children
|
|
50
|
+
}) {
|
|
51
|
+
const insets = useSyncExternalStore(subscribeWindowInsets, readWindowInsets, readServerInsets);
|
|
52
|
+
const {
|
|
53
|
+
width,
|
|
54
|
+
height
|
|
55
|
+
} = useWindowDimensions();
|
|
56
|
+
const frame = useMemo(() => ({
|
|
57
|
+
x: 0,
|
|
58
|
+
y: 0,
|
|
59
|
+
width,
|
|
60
|
+
height
|
|
61
|
+
}), [width, height]);
|
|
62
|
+
// The same flex-filling view `SafeAreaProvider` renders, so layout below is unchanged.
|
|
63
|
+
return /*#__PURE__*/_jsx(View, {
|
|
64
|
+
style: styles.fill,
|
|
65
|
+
children: /*#__PURE__*/_jsx(SafeAreaFrameContext.Provider, {
|
|
66
|
+
value: frame,
|
|
67
|
+
children: /*#__PURE__*/_jsx(SafeAreaInsetsContext.Provider, {
|
|
68
|
+
value: insets,
|
|
69
|
+
children: children
|
|
70
|
+
})
|
|
71
|
+
})
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
const ZERO = Object.freeze({
|
|
75
|
+
top: 0,
|
|
76
|
+
right: 0,
|
|
77
|
+
bottom: 0,
|
|
78
|
+
left: 0
|
|
79
|
+
});
|
|
80
|
+
let probe = null;
|
|
81
|
+
let snapshot = ZERO;
|
|
82
|
+
const listeners = new Set();
|
|
83
|
+
function readServerInsets() {
|
|
84
|
+
return ZERO;
|
|
85
|
+
}
|
|
86
|
+
function readWindowInsets() {
|
|
87
|
+
return snapshot;
|
|
88
|
+
}
|
|
89
|
+
function measure() {
|
|
90
|
+
if (!probe) return;
|
|
91
|
+
const style = getComputedStyle(probe);
|
|
92
|
+
const next = {
|
|
93
|
+
top: Number.parseFloat(style.paddingTop) || 0,
|
|
94
|
+
right: Number.parseFloat(style.paddingRight) || 0,
|
|
95
|
+
bottom: Number.parseFloat(style.paddingBottom) || 0,
|
|
96
|
+
left: Number.parseFloat(style.paddingLeft) || 0
|
|
97
|
+
};
|
|
98
|
+
if (next.top === snapshot.top && next.right === snapshot.right && next.bottom === snapshot.bottom && next.left === snapshot.left) {
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
snapshot = next.top || next.right || next.bottom || next.left ? next : ZERO;
|
|
102
|
+
for (const listener of listeners) listener();
|
|
103
|
+
}
|
|
104
|
+
function subscribeWindowInsets(listener) {
|
|
105
|
+
if (typeof document === 'undefined' || !document.body) return () => {};
|
|
106
|
+
listeners.add(listener);
|
|
107
|
+
if (!probe) {
|
|
108
|
+
probe = document.createElement('div');
|
|
109
|
+
probe.setAttribute('aria-hidden', 'true');
|
|
110
|
+
// Through the CSSOM, which CSP `style-src` does not block.
|
|
111
|
+
probe.style.position = 'fixed';
|
|
112
|
+
probe.style.visibility = 'hidden';
|
|
113
|
+
probe.style.pointerEvents = 'none';
|
|
114
|
+
probe.style.top = '0';
|
|
115
|
+
probe.style.left = '0';
|
|
116
|
+
probe.style.setProperty('padding-top', 'env(safe-area-inset-top, 0px)');
|
|
117
|
+
probe.style.setProperty('padding-right', 'env(safe-area-inset-right, 0px)');
|
|
118
|
+
probe.style.setProperty('padding-bottom', 'env(safe-area-inset-bottom, 0px)');
|
|
119
|
+
probe.style.setProperty('padding-left', 'env(safe-area-inset-left, 0px)');
|
|
120
|
+
document.body.appendChild(probe);
|
|
121
|
+
window.addEventListener('resize', measure);
|
|
122
|
+
window.addEventListener('orientationchange', measure);
|
|
123
|
+
}
|
|
124
|
+
measure();
|
|
125
|
+
return () => {
|
|
126
|
+
listeners.delete(listener);
|
|
127
|
+
if (listeners.size > 0 || !probe) return;
|
|
128
|
+
window.removeEventListener('resize', measure);
|
|
129
|
+
window.removeEventListener('orientationchange', measure);
|
|
130
|
+
probe.remove();
|
|
131
|
+
probe = null;
|
|
132
|
+
snapshot = ZERO;
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=SafeAreaRoot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useMemo","useSyncExternalStore","Platform","StyleSheet","useWindowDimensions","View","SafeAreaFrameContext","SafeAreaInsetsContext","SafeAreaProvider","jsx","_jsx","styles","create","fill","flex","SafeAreaRoot","children","OS","WindowSafeAreaProvider","insets","subscribeWindowInsets","readWindowInsets","readServerInsets","width","height","frame","x","y","style","Provider","value","ZERO","Object","freeze","top","right","bottom","left","probe","snapshot","listeners","Set","measure","getComputedStyle","next","Number","parseFloat","paddingTop","paddingRight","paddingBottom","paddingLeft","listener","document","body","add","createElement","setAttribute","position","visibility","pointerEvents","setProperty","appendChild","window","addEventListener","delete","size","removeEventListener","remove"],"sourceRoot":"../../../../src","sources":["ui/components/SafeAreaRoot.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,OAAO,EAAEC,oBAAoB,QAAQ,OAAO;AACrD,SAASC,QAAQ,EAAEC,UAAU,EAAEC,mBAAmB,EAAEC,IAAI,QAAQ,cAAc;AAC9E,SAEEC,oBAAoB,EACpBC,qBAAqB,EACrBC,gBAAgB,QACX,gCAAgC;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAExC,MAAMC,MAAM,GAAGR,UAAU,CAACS,MAAM,CAAC;EAC/BC,IAAI,EAAE;IAAEC,IAAI,EAAE;EAAE;AAClB,CAAC,CAAC;AAEF,OAAO,SAASC,YAAYA,CAAC;EAAEC;AAAmC,CAAC,EAAE;EACnE,IAAId,QAAQ,CAACe,EAAE,KAAK,KAAK,EAAE,oBAAOP,IAAA,CAACQ,sBAAsB;IAAAF,QAAA,EAAEA;EAAQ,CAAyB,CAAC;EAC7F,oBAAON,IAAA,CAACF,gBAAgB;IAAAQ,QAAA,EAAEA;EAAQ,CAAmB,CAAC;AACxD;;AAEA;AACA,SAASE,sBAAsBA,CAAC;EAAEF;AAAmC,CAAC,EAAE;EACtE,MAAMG,MAAM,GAAGlB,oBAAoB,CAACmB,qBAAqB,EAAEC,gBAAgB,EAAEC,gBAAgB,CAAC;EAC9F,MAAM;IAAEC,KAAK;IAAEC;EAAO,CAAC,GAAGpB,mBAAmB,CAAC,CAAC;EAC/C,MAAMqB,KAAK,GAAGzB,OAAO,CAAC,OAAO;IAAE0B,CAAC,EAAE,CAAC;IAAEC,CAAC,EAAE,CAAC;IAAEJ,KAAK;IAAEC;EAAO,CAAC,CAAC,EAAE,CAACD,KAAK,EAAEC,MAAM,CAAC,CAAC;EAC7E;EACA,oBACEd,IAAA,CAACL,IAAI;IAACuB,KAAK,EAAEjB,MAAM,CAACE,IAAK;IAAAG,QAAA,eACvBN,IAAA,CAACJ,oBAAoB,CAACuB,QAAQ;MAACC,KAAK,EAAEL,KAAM;MAAAT,QAAA,eAC1CN,IAAA,CAACH,qBAAqB,CAACsB,QAAQ;QAACC,KAAK,EAAEX,MAAO;QAAAH,QAAA,EAAEA;MAAQ,CAAiC;IAAC,CAC7D;EAAC,CAC5B,CAAC;AAEX;AAEA,MAAMe,IAAgB,GAAGC,MAAM,CAACC,MAAM,CAAC;EAAEC,GAAG,EAAE,CAAC;EAAEC,KAAK,EAAE,CAAC;EAAEC,MAAM,EAAE,CAAC;EAAEC,IAAI,EAAE;AAAE,CAAC,CAAC;AAEhF,IAAIC,KAAyB,GAAG,IAAI;AACpC,IAAIC,QAAoB,GAAGR,IAAI;AAC/B,MAAMS,SAAS,GAAG,IAAIC,GAAG,CAAa,CAAC;AAEvC,SAASnB,gBAAgBA,CAAA,EAAe;EACtC,OAAOS,IAAI;AACb;AAEA,SAASV,gBAAgBA,CAAA,EAAe;EACtC,OAAOkB,QAAQ;AACjB;AAEA,SAASG,OAAOA,CAAA,EAAS;EACvB,IAAI,CAACJ,KAAK,EAAE;EACZ,MAAMV,KAAK,GAAGe,gBAAgB,CAACL,KAAK,CAAC;EACrC,MAAMM,IAAI,GAAG;IACXV,GAAG,EAAEW,MAAM,CAACC,UAAU,CAAClB,KAAK,CAACmB,UAAU,CAAC,IAAI,CAAC;IAC7CZ,KAAK,EAAEU,MAAM,CAACC,UAAU,CAAClB,KAAK,CAACoB,YAAY,CAAC,IAAI,CAAC;IACjDZ,MAAM,EAAES,MAAM,CAACC,UAAU,CAAClB,KAAK,CAACqB,aAAa,CAAC,IAAI,CAAC;IACnDZ,IAAI,EAAEQ,MAAM,CAACC,UAAU,CAAClB,KAAK,CAACsB,WAAW,CAAC,IAAI;EAChD,CAAC;EACD,IACEN,IAAI,CAACV,GAAG,KAAKK,QAAQ,CAACL,GAAG,IACzBU,IAAI,CAACT,KAAK,KAAKI,QAAQ,CAACJ,KAAK,IAC7BS,IAAI,CAACR,MAAM,KAAKG,QAAQ,CAACH,MAAM,IAC/BQ,IAAI,CAACP,IAAI,KAAKE,QAAQ,CAACF,IAAI,EAC3B;IACA;EACF;EACAE,QAAQ,GAAGK,IAAI,CAACV,GAAG,IAAIU,IAAI,CAACT,KAAK,IAAIS,IAAI,CAACR,MAAM,IAAIQ,IAAI,CAACP,IAAI,GAAGO,IAAI,GAAGb,IAAI;EAC3E,KAAK,MAAMoB,QAAQ,IAAIX,SAAS,EAAEW,QAAQ,CAAC,CAAC;AAC9C;AAEA,SAAS/B,qBAAqBA,CAAC+B,QAAoB,EAAc;EAC/D,IAAI,OAAOC,QAAQ,KAAK,WAAW,IAAI,CAACA,QAAQ,CAACC,IAAI,EAAE,OAAO,MAAM,CAAC,CAAC;EACtEb,SAAS,CAACc,GAAG,CAACH,QAAQ,CAAC;EACvB,IAAI,CAACb,KAAK,EAAE;IACVA,KAAK,GAAGc,QAAQ,CAACG,aAAa,CAAC,KAAK,CAAC;IACrCjB,KAAK,CAACkB,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC;IACzC;IACAlB,KAAK,CAACV,KAAK,CAAC6B,QAAQ,GAAG,OAAO;IAC9BnB,KAAK,CAACV,KAAK,CAAC8B,UAAU,GAAG,QAAQ;IACjCpB,KAAK,CAACV,KAAK,CAAC+B,aAAa,GAAG,MAAM;IAClCrB,KAAK,CAACV,KAAK,CAACM,GAAG,GAAG,GAAG;IACrBI,KAAK,CAACV,KAAK,CAACS,IAAI,GAAG,GAAG;IACtBC,KAAK,CAACV,KAAK,CAACgC,WAAW,CAAC,aAAa,EAAE,+BAA+B,CAAC;IACvEtB,KAAK,CAACV,KAAK,CAACgC,WAAW,CAAC,eAAe,EAAE,iCAAiC,CAAC;IAC3EtB,KAAK,CAACV,KAAK,CAACgC,WAAW,CAAC,gBAAgB,EAAE,kCAAkC,CAAC;IAC7EtB,KAAK,CAACV,KAAK,CAACgC,WAAW,CAAC,cAAc,EAAE,gCAAgC,CAAC;IACzER,QAAQ,CAACC,IAAI,CAACQ,WAAW,CAACvB,KAAK,CAAC;IAChCwB,MAAM,CAACC,gBAAgB,CAAC,QAAQ,EAAErB,OAAO,CAAC;IAC1CoB,MAAM,CAACC,gBAAgB,CAAC,mBAAmB,EAAErB,OAAO,CAAC;EACvD;EACAA,OAAO,CAAC,CAAC;EACT,OAAO,MAAM;IACXF,SAAS,CAACwB,MAAM,CAACb,QAAQ,CAAC;IAC1B,IAAIX,SAAS,CAACyB,IAAI,GAAG,CAAC,IAAI,CAAC3B,KAAK,EAAE;IAClCwB,MAAM,CAACI,mBAAmB,CAAC,QAAQ,EAAExB,OAAO,CAAC;IAC7CoB,MAAM,CAACI,mBAAmB,CAAC,mBAAmB,EAAExB,OAAO,CAAC;IACxDJ,KAAK,CAAC6B,MAAM,CAAC,CAAC;IACd7B,KAAK,GAAG,IAAI;IACZC,QAAQ,GAAGR,IAAI;EACjB,CAAC;AACH","ignoreList":[]}
|
|
@@ -2,13 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
import { SpinnerIcon } from '@oxy.so/bloom/loading';
|
|
4
4
|
import { useMemo, useState, useEffect } from 'react';
|
|
5
|
-
import { View, ScrollView,
|
|
5
|
+
import { View, ScrollView, StyleSheet } from 'react-native';
|
|
6
6
|
import { Button } from '@oxy.so/bloom/button';
|
|
7
7
|
import { Text } from '@oxy.so/bloom/typography';
|
|
8
8
|
import { Image as ExpoImage } from 'expo-image';
|
|
9
9
|
import MaterialCommunityIcons from "../../icons/MaterialCommunityIcons.js";
|
|
10
10
|
import { useTheme } from '@oxy.so/bloom/theme';
|
|
11
11
|
import { formatFileSize } from "../../utils/fileManagement.js";
|
|
12
|
+
import { getImageSize } from '../../utils/imageSize';
|
|
12
13
|
import { GroupedSection, GroupedSectionItem } from '@oxy.so/bloom/grouped-section';
|
|
13
14
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
14
15
|
// Genuinely-inline-only styles: the full-bleed blurred background is an
|
|
@@ -59,22 +60,24 @@ export const FileViewer = ({
|
|
|
59
60
|
|
|
60
61
|
// Load image dimensions when image content is available
|
|
61
62
|
useEffect(() => {
|
|
62
|
-
if (isImage
|
|
63
|
-
Image.getSize(fileContent, (width, height) => {
|
|
64
|
-
setImageDimensions({
|
|
65
|
-
width,
|
|
66
|
-
height
|
|
67
|
-
});
|
|
68
|
-
}, () => {
|
|
69
|
-
// Fallback if dimensions can't be loaded
|
|
70
|
-
setImageDimensions({
|
|
71
|
-
width: 400,
|
|
72
|
-
height: 400
|
|
73
|
-
});
|
|
74
|
-
});
|
|
75
|
-
} else {
|
|
63
|
+
if (!isImage || !fileContent) {
|
|
76
64
|
setImageDimensions(null);
|
|
65
|
+
return;
|
|
77
66
|
}
|
|
67
|
+
// A newer file may replace this one before its size arrives.
|
|
68
|
+
let current = true;
|
|
69
|
+
getImageSize(fileContent).then(size => {
|
|
70
|
+
if (current) setImageDimensions(size);
|
|
71
|
+
}, () => {
|
|
72
|
+
// Fallback if dimensions can't be loaded
|
|
73
|
+
if (current) setImageDimensions({
|
|
74
|
+
width: 400,
|
|
75
|
+
height: 400
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
return () => {
|
|
79
|
+
current = false;
|
|
80
|
+
};
|
|
78
81
|
}, [isImage, fileContent]);
|
|
79
82
|
|
|
80
83
|
// Calculate display size based on natural dimensions and max constraints
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["SpinnerIcon","useMemo","useState","useEffect","View","ScrollView","Image","StyleSheet","Button","Text","ExpoImage","MaterialCommunityIcons","useTheme","formatFileSize","GroupedSection","GroupedSectionItem","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","viewerStyles","create","backgroundImage","position","top","left","right","bottom","width","height","zIndex","imageContainer","alignItems","justifyContent","flex","marginTop","marginBottom","paddingHorizontal","FileViewer","file","fileContent","loadingFileContent","showFileDetailsInViewer","onToggleDetails","onClose","onDownload","onDelete","deleteLabel","isOwner","colors","isImage","contentType","startsWith","isText","includes","isPDF","isVideo","isAudio","containerWidth","setContainerWidth","imageDimensions","setImageDimensions","getSize","imageDisplaySize","maxWidth","maxHeight","aspectRatio","displayWidth","displayHeight","fileDetailItems","items","id","iconName","iconColor","info","title","description","filename","warning","length","primary","success","Date","uploadDate","toLocaleString","metadata","push","className","children","source","uri","style","contentFit","blurRadius","transition","cachePolicy","backgroundColor","overlay","appearance","tone","iconOnly","accessibilityLabel","onPress","icon","name","size","color","text","contentContainerClassName","onLayout","e","nativeEvent","layout","onError","nestedScrollEnabled","fontFamily","textSecondary","map","item","showChevron"],"sourceRoot":"../../../../../src","sources":["ui/components/fileManagement/FileViewer.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["SpinnerIcon","useMemo","useState","useEffect","View","ScrollView","StyleSheet","Button","Text","Image","ExpoImage","MaterialCommunityIcons","useTheme","formatFileSize","getImageSize","GroupedSection","GroupedSectionItem","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","viewerStyles","create","backgroundImage","position","top","left","right","bottom","width","height","zIndex","imageContainer","alignItems","justifyContent","flex","marginTop","marginBottom","paddingHorizontal","FileViewer","file","fileContent","loadingFileContent","showFileDetailsInViewer","onToggleDetails","onClose","onDownload","onDelete","deleteLabel","isOwner","colors","isImage","contentType","startsWith","isText","includes","isPDF","isVideo","isAudio","containerWidth","setContainerWidth","imageDimensions","setImageDimensions","current","then","size","imageDisplaySize","maxWidth","maxHeight","aspectRatio","displayWidth","displayHeight","fileDetailItems","items","id","iconName","iconColor","info","title","description","filename","warning","length","primary","success","Date","uploadDate","toLocaleString","metadata","push","className","children","source","uri","style","contentFit","blurRadius","transition","cachePolicy","backgroundColor","overlay","appearance","tone","iconOnly","accessibilityLabel","onPress","icon","name","color","text","contentContainerClassName","onLayout","e","nativeEvent","layout","onError","nestedScrollEnabled","fontFamily","textSecondary","map","item","showChevron"],"sourceRoot":"../../../../../src","sources":["ui/components/fileManagement/FileViewer.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,41 +1,34 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import React, { useMemo, useState, useCallback } from 'react';
|
|
4
|
-
import { View,
|
|
4
|
+
import { View, useWindowDimensions } from 'react-native';
|
|
5
5
|
import { Text } from '@oxy.so/bloom/typography';
|
|
6
6
|
import { useQuery, keepPreviousData } from '@tanstack/react-query';
|
|
7
|
+
import { getImageSize } from '../../utils/imageSize';
|
|
7
8
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
8
9
|
/** Stable empty map so an unresolved query yields a referentially-stable value. */
|
|
9
10
|
const EMPTY_DIMENSIONS = {};
|
|
10
11
|
|
|
11
12
|
/**
|
|
12
13
|
* Measure the intrinsic size of every photo whose thumbnail URL has resolved,
|
|
13
|
-
* via `
|
|
14
|
+
* via `getImageSize` (expo-image on a device). Pure/async (no React state) so it can be a React Query
|
|
14
15
|
* `queryFn`. Photos without a resolved URL are skipped and re-measured on the
|
|
15
16
|
* next signature change; a load error falls back to 1×1 (→ the 4/3 default).
|
|
16
17
|
*/
|
|
17
18
|
async function measurePhotoDimensions(photos, getThumbUrl) {
|
|
18
19
|
const measured = {};
|
|
19
|
-
await Promise.all(photos.map(photo =>
|
|
20
|
+
await Promise.all(photos.map(async photo => {
|
|
20
21
|
const url = getThumbUrl(photo);
|
|
21
|
-
if (!url)
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
}
|
|
25
|
-
Image.getSize(url, (width, height) => {
|
|
26
|
-
measured[photo.id] = {
|
|
27
|
-
width,
|
|
28
|
-
height
|
|
29
|
-
};
|
|
30
|
-
resolve();
|
|
31
|
-
}, () => {
|
|
22
|
+
if (!url) return;
|
|
23
|
+
try {
|
|
24
|
+
measured[photo.id] = await getImageSize(url);
|
|
25
|
+
} catch {
|
|
32
26
|
measured[photo.id] = {
|
|
33
27
|
width: 1,
|
|
34
28
|
height: 1
|
|
35
29
|
};
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
})));
|
|
30
|
+
}
|
|
31
|
+
}));
|
|
39
32
|
return measured;
|
|
40
33
|
}
|
|
41
34
|
|
|
@@ -54,7 +47,7 @@ export function chunkPhotos(photos, perRow) {
|
|
|
54
47
|
* Responsive justified photo grid that stretches to the provided containerWidth.
|
|
55
48
|
* Uses flex rows with proportional children widths instead of absolute pixel widths so it always fills.
|
|
56
49
|
*
|
|
57
|
-
* Owns its own intrinsic-dimension measurement: it calls `
|
|
50
|
+
* Owns its own intrinsic-dimension measurement: it calls `getImageSize` on each
|
|
58
51
|
* photo's resolved thumbnail URL and reflows once real aspect ratios are known
|
|
59
52
|
* (falling back to 4/3 until then). Measurement re-runs whenever a photo is added
|
|
60
53
|
* OR its (asynchronously-resolved) private-safe URL first appears.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useMemo","useState","useCallback","View","
|
|
1
|
+
{"version":3,"names":["React","useMemo","useState","useCallback","View","useWindowDimensions","Text","useQuery","keepPreviousData","getImageSize","jsx","_jsx","jsxs","_jsxs","EMPTY_DIMENSIONS","measurePhotoDimensions","photos","getThumbUrl","measured","Promise","all","map","photo","url","id","width","height","PHOTOS_PER_ROW","chunkPhotos","perRow","rows","i","length","push","slice","JustifiedPhotoGrid","renderJustifiedPhotoItem","textColor","containerWidth","explicitWidth","gap","minRowHeight","maxRowHeight","dateFormatLocale","windowWidth","measuredWidth","setMeasuredWidth","resolvedExplicitWidth","resolvedMeasuredWidth","effectiveWidth","onLayoutContainer","e","w","nativeEvent","layout","prev","urlSignature","p","join","dimensionsQuery","queryKey","queryFn","placeholderData","staleTime","Number","POSITIVE_INFINITY","gcTime","photoDimensions","data","photosByDate","reduce","groups","date","Date","uploadDate","toDateString","sortedDates","Object","keys","sort","a","b","getTime","dateWidths","setDateWidths","onLayoutDate","style","onLayout","children","dayPhotos","dateWidth","marginBottom","fontSize","fontWeight","color","toLocaleDateString","weekday","year","month","day","row","rowIndex","aspects","dims","totalAspect","gapsTotal","availableWidth","idealHeight","rowHeight","widthAdjustment","widths","ar","widthSum","widthSumRounded","roundingDiff","Math","abs","flexDirection","photoWidth","marginRight","memo"],"sourceRoot":"../../../../../src","sources":["ui/components/photogrid/JustifiedPhotoGrid.tsx"],"mappings":"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","ignoreList":[]}
|
package/lib/module/ui/index.js
CHANGED
|
@@ -17,9 +17,11 @@
|
|
|
17
17
|
/// <reference path="../types/react-native-classname.d.ts" />
|
|
18
18
|
/// <reference path="../types/react-native-web-style.d.ts" />
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
// No screen is imported here. `OxyProvider` loads the account screens as their
|
|
21
|
+
// own chunk at startup (`loadScreens`), and a surface opened before that chunk
|
|
22
|
+
// arrives waits for it. A static `screenComponents` import here put all of them
|
|
23
|
+
// in the first-paint bundle of every app that imports anything from `ui`
|
|
24
|
+
// (Allo: +340 KB gzipped).
|
|
23
25
|
|
|
24
26
|
// Components
|
|
25
27
|
export { default as OxyProvider } from "./components/OxyProvider.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["default","OxyProvider","OxySignInButton","OxyAuthPrompt","LogoIcon","LogoText","RequireOxyAuth","FollowButton","PeableButton","OxyPayButton","ProfileButton","useOxy","useOptionalOxy","OxyProviderMissingError","useAppAssertion","useAuth","useFollow","useSeedFollowStatuses","useStorage","useAuthStore","handleAuthError","isInvalidSessionError","isTimeoutOrNetworkError","extractErrorMessage","useSupervision","supervisionQueryKeys"],"sourceRoot":"../../../src","sources":["ui/index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAASA,OAAO,IAAIC,WAAW,QAAQ,6BAA0B;AACjE,SAASD,OAAO,IAAIE,eAAe,QAAQ,iCAA8B;AACzE,SAASF,OAAO,IAAIG,aAAa,QAAQ,+BAA4B;AAErE,SAASC,QAAQ,QAAQ,+BAA4B;AACrD,SAASC,QAAQ,QAAQ,+BAA4B;AACrD,SAASC,cAAc,QAAQ,gCAA6B;;AAE5D;;AAEA,SAASN,OAAO,IAAIO,YAAY,QAAQ,8BAA2B;AACnE,SAASP,OAAO,IAAIQ,YAAY,QAAQ,8BAA2B;AAEnE;AACA,SAASR,OAAO,IAAIS,YAAY,QAAQ,8BAA2B;AACnE;;AAEA,SAAST,OAAO,IAAIU,aAAa,QAAQ,+BAA4B;;AAErE;AACA,SAASC,MAAM,EAAEC,cAAc,EAAEC,uBAAuB,QAAQ,yBAAsB;AACtF,SAASC,eAAe,QAAQ,uCAAoC;AAEpE,SAASC,OAAO,QAAQ,oBAAiB;AAEzC,SAASC,SAAS,EAAEC,qBAAqB,QAAQ,sBAAmB;AACpE,SAASC,UAAU,QAAQ,uBAAoB;AAG/C;AACA;;AAEA;AACA,SAASC,YAAY,QAAQ,uBAAoB;;AAEjD;AACA,SACEC,eAAe,EACfC,qBAAqB,EACrBC,uBAAuB,EACvBC,mBAAmB,QACd,0BAAuB;AAG9B,SAASC,cAAc,EAAEC,oBAAoB,QAAQ,mCAAgC","ignoreList":[]}
|
|
@@ -24,8 +24,9 @@
|
|
|
24
24
|
|
|
25
25
|
/**
|
|
26
26
|
* Optional consumer overrides for account-dialog actions. `ProfileButton` (and
|
|
27
|
-
* similar hosts) register these while mounted so
|
|
28
|
-
*
|
|
27
|
+
* similar hosts) register these while mounted so an app can route "Add account"
|
|
28
|
+
* and "Profile" to app-local navigation, and add its own menu entries. "Manage
|
|
29
|
+
* your Oxy account" is not overridable: it always opens the SDK's ManageAccount.
|
|
29
30
|
*/
|
|
30
31
|
|
|
31
32
|
let controls = null;
|
|
@@ -46,7 +47,7 @@ export function registerAccountDialogControls(next) {
|
|
|
46
47
|
};
|
|
47
48
|
}
|
|
48
49
|
|
|
49
|
-
/** Register app-local
|
|
50
|
+
/** Register app-local add/profile handlers and menu entries for the account dialog. */
|
|
50
51
|
export function registerAccountDialogConsumerHooks(next) {
|
|
51
52
|
consumerHooks = next;
|
|
52
53
|
notifyConsumerHookListeners();
|
|
@@ -61,7 +62,7 @@ export function getAccountDialogConsumerHooks() {
|
|
|
61
62
|
return consumerHooks;
|
|
62
63
|
}
|
|
63
64
|
|
|
64
|
-
/** Subscribe to consumer-hook registration changes (menu items,
|
|
65
|
+
/** Subscribe to consumer-hook registration changes (menu items, add/profile overrides). */
|
|
65
66
|
export function subscribeToAccountDialogConsumerHooks(listener) {
|
|
66
67
|
consumerHookListeners.add(listener);
|
|
67
68
|
return () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["controls","consumerHooks","visibilityListeners","Set","consumerHookListeners","notifyConsumerHookListeners","listener","registerAccountDialogControls","next","registerAccountDialogConsumerHooks","getAccountDialogConsumerHooks","subscribeToAccountDialogConsumerHooks","add","delete","openAccountDialog","view","open","closeAccountDialog","close","notifyAccountDialogVisibility","visible","subscribeToAccountDialog"],"sourceRoot":"../../../../src","sources":["ui/navigation/accountDialogManager.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA;;AAcA;;AAOA;AACA;AACA;AACA;AACA;;AAMA;AACA;AACA;AACA;AACA;;
|
|
1
|
+
{"version":3,"names":["controls","consumerHooks","visibilityListeners","Set","consumerHookListeners","notifyConsumerHookListeners","listener","registerAccountDialogControls","next","registerAccountDialogConsumerHooks","getAccountDialogConsumerHooks","subscribeToAccountDialogConsumerHooks","add","delete","openAccountDialog","view","open","closeAccountDialog","close","notifyAccountDialogVisibility","visible","subscribeToAccountDialog"],"sourceRoot":"../../../../src","sources":["ui/navigation/accountDialogManager.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA;;AAcA;;AAOA;AACA;AACA;AACA;AACA;;AAMA;AACA;AACA;AACA;AACA;AACA;;AAQA,IAAIA,QAAsC,GAAG,IAAI;AACjD,IAAIC,aAAgD,GAAG,IAAI;AAC3D,MAAMC,mBAAmB,GAAG,IAAIC,GAAG,CAA6B,CAAC;AACjE,MAAMC,qBAAqB,GAAG,IAAID,GAAG,CAAa,CAAC;AAEnD,SAASE,2BAA2BA,CAAA,EAAS;EAC3C,KAAK,MAAMC,QAAQ,IAAIF,qBAAqB,EAAE;IAC5CE,QAAQ,CAAC,CAAC;EACZ;AACF;AAEA,OAAO,SAASC,6BAA6BA,CAACC,IAA2B,EAAc;EACrFR,QAAQ,GAAGQ,IAAI;EACf,OAAO,MAAM;IACX,IAAIR,QAAQ,KAAKQ,IAAI,EAAE;MACrBR,QAAQ,GAAG,IAAI;IACjB;EACF,CAAC;AACH;;AAEA;AACA,OAAO,SAASS,kCAAkCA,CAChDD,IAAuC,EAC3B;EACZP,aAAa,GAAGO,IAAI;EACpBH,2BAA2B,CAAC,CAAC;EAC7B,OAAO,MAAM;IACX,IAAIJ,aAAa,KAAKO,IAAI,EAAE;MAC1BP,aAAa,GAAG,IAAI;MACpBI,2BAA2B,CAAC,CAAC;IAC/B;EACF,CAAC;AACH;AAEA,OAAO,SAASK,6BAA6BA,CAAA,EAAsC;EACjF,OAAOT,aAAa;AACtB;;AAEA;AACA,OAAO,SAASU,qCAAqCA,CAACL,QAAoB,EAAc;EACtFF,qBAAqB,CAACQ,GAAG,CAACN,QAAQ,CAAC;EACnC,OAAO,MAAM;IACXF,qBAAqB,CAACS,MAAM,CAACP,QAAQ,CAAC;EACxC,CAAC;AACH;;AAEA;AACA,OAAO,SAASQ,iBAAiBA,CAACC,IAAwB,EAAQ;EAChEf,QAAQ,EAAEgB,IAAI,CAACD,IAAI,CAAC;AACtB;;AAEA;AACA,OAAO,SAASE,kBAAkBA,CAAA,EAAS;EACzCjB,QAAQ,EAAEkB,KAAK,CAAC,CAAC;AACnB;;AAEA;AACA,OAAO,SAASC,6BAA6BA,CAACC,OAAgB,EAAQ;EACpE,KAAK,MAAMd,QAAQ,IAAIJ,mBAAmB,EAAE;IAC1CI,QAAQ,CAACc,OAAO,CAAC;EACnB;AACF;;AAEA;AACA,OAAO,SAASC,wBAAwBA,CAACf,QAAoC,EAAc;EACzFJ,mBAAmB,CAACU,GAAG,CAACN,QAAQ,CAAC;EACjC,OAAO,MAAM;IACXJ,mBAAmB,CAACW,MAAM,CAACP,QAAQ,CAAC;EACtC,CAAC;AACH","ignoreList":[]}
|
|
@@ -157,8 +157,8 @@ function presentInternal(route, props, opts, track) {
|
|
|
157
157
|
dismissOnBackdrop: bloomOpts.dismissOnBackdrop ?? true
|
|
158
158
|
}), bloomOpts);
|
|
159
159
|
|
|
160
|
-
// Never mount a partially-loaded frame.
|
|
161
|
-
//
|
|
160
|
+
// Never mount a partially-loaded frame. The root entry takes the sync path;
|
|
161
|
+
// `ui` and `ui/client` preload at provider startup, normally before the first press.
|
|
162
162
|
const result = screensReady() ? open() : loadScreens().then(() => {
|
|
163
163
|
if (navStack.store.getState().closing) return undefined;
|
|
164
164
|
return open();
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
/** Optional video entry: never re-export from services or its UI root barrels. */
|
|
4
4
|
import { useEffect } from 'react';
|
|
5
|
-
import { AppState,
|
|
5
|
+
import { AppState, StyleSheet, View } from 'react-native';
|
|
6
|
+
import { Image as ExpoImage } from 'expo-image';
|
|
6
7
|
import { useVideoPlayer } from 'expo-video';
|
|
7
8
|
import { VideoView } from '@oxy.so/bloom/video-view';
|
|
8
9
|
import { useReducedMotion } from 'react-native-reanimated';
|
|
@@ -29,9 +30,9 @@ export function OxyOneVideo() {
|
|
|
29
30
|
style: StyleSheet.absoluteFill,
|
|
30
31
|
accessibilityElementsHidden: true,
|
|
31
32
|
importantForAccessibility: "no-hide-descendants",
|
|
32
|
-
children: [/*#__PURE__*/_jsx(
|
|
33
|
+
children: [/*#__PURE__*/_jsx(ExpoImage, {
|
|
33
34
|
source: floralPoster,
|
|
34
|
-
|
|
35
|
+
contentFit: "cover",
|
|
35
36
|
style: StyleSheet.absoluteFill
|
|
36
37
|
}), !reducedMotion && /*#__PURE__*/_jsx(VideoView, {
|
|
37
38
|
player: player,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","AppState","
|
|
1
|
+
{"version":3,"names":["useEffect","AppState","StyleSheet","View","Image","ExpoImage","useVideoPlayer","VideoView","useReducedMotion","floralVideo","floralPoster","jsx","_jsx","jsxs","_jsxs","OxyOneVideo","reducedMotion","player","video","muted","loop","update","state","play","pause","currentState","subscription","addEventListener","remove","style","absoluteFill","accessibilityElementsHidden","importantForAccessibility","children","source","contentFit","nativeControls","surfaceType"],"sourceRoot":"../../../src","sources":["ui/one-video.tsx"],"mappings":";;AAAA;AACA,SAASA,SAAS,QAAQ,OAAO;AACjC,SAASC,QAAQ,EAAEC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AACzD,SAASC,KAAK,IAAIC,SAAS,QAAQ,YAAY;AAC/C,SAASC,cAAc,QAAQ,YAAY;AAC3C,SAASC,SAAS,QAAQ,0BAA0B;AACpD,SAASC,gBAAgB,QAAQ,yBAAyB;AAC1D,OAAOC,WAAW,MAAM,0BAA0B;AAClD,OAAOC,YAAY,MAAM,0BAA0B;;AAEnD;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AACA,OAAO,SAASC,WAAWA,CAAA,EAAG;EAC5B,MAAMC,aAAa,GAAGR,gBAAgB,CAAC,CAAC;EACxC,MAAMS,MAAM,GAAGX,cAAc,CAACU,aAAa,GAAG,IAAI,GAAGP,WAAW,EAAGS,KAAK,IAAK;IAC3EA,KAAK,CAACC,KAAK,GAAG,IAAI;IAClBD,KAAK,CAACE,IAAI,GAAG,IAAI;EACnB,CAAC,CAAC;EACFpB,SAAS,CAAC,MAAM;IACd,MAAMqB,MAAM,GAAIC,KAAgC,IAAK;MACnD,IAAI,CAACN,aAAa,IAAIM,KAAK,KAAK,QAAQ,EAAEL,MAAM,CAACM,IAAI,CAAC,CAAC,CAAC,KACnDN,MAAM,CAACO,KAAK,CAAC,CAAC;IACrB,CAAC;IACDH,MAAM,CAACpB,QAAQ,CAACwB,YAAY,CAAC;IAC7B,MAAMC,YAAY,GAAGzB,QAAQ,CAAC0B,gBAAgB,CAAC,QAAQ,EAAEN,MAAM,CAAC;IAChE,OAAO,MAAMK,YAAY,CAACE,MAAM,CAAC,CAAC;EACpC,CAAC,EAAE,CAACX,MAAM,EAAED,aAAa,CAAC,CAAC;EAC3B,oBACEF,KAAA,CAACX,IAAI;IACH0B,KAAK,EAAE3B,UAAU,CAAC4B,YAAa;IAC/BC,2BAA2B;IAC3BC,yBAAyB,EAAC,qBAAqB;IAAAC,QAAA,gBAE/CrB,IAAA,CAACP,SAAS;MAAC6B,MAAM,EAAExB,YAAa;MAACyB,UAAU,EAAC,OAAO;MAACN,KAAK,EAAE3B,UAAU,CAAC4B;IAAa,CAAE,CAAC,EACrF,CAACd,aAAa,iBACbJ,IAAA,CAACL,SAAS;MACRU,MAAM,EAAEA,MAAO;MACfmB,cAAc,EAAE,KAAM;MACtBD,UAAU,EAAC,OAAO;MAClBE,WAAW,EAAC,aAAa;MACzBR,KAAK,EAAE3B,UAAU,CAAC4B;IAAa,CAChC,CACF;EAAA,CACG,CAAC;AAEX","ignoreList":[]}
|
|
@@ -34,11 +34,12 @@ import { RiSubtractLine } from '@oxy.so/bloom/icons/RiSubtractLine';
|
|
|
34
34
|
*/
|
|
35
35
|
|
|
36
36
|
import { useCallback, useMemo, useRef, useState } from 'react';
|
|
37
|
-
import { View, StyleSheet,
|
|
37
|
+
import { View, StyleSheet, Platform, AccessibilityInfo } from 'react-native';
|
|
38
38
|
import { Text } from '@oxy.so/bloom/typography';
|
|
39
39
|
import { Gesture, GestureDetector } from 'react-native-gesture-handler';
|
|
40
40
|
import Animated, { Easing, runOnJS, useAnimatedStyle, useSharedValue, withDelay, withSpring, withTiming } from 'react-native-reanimated';
|
|
41
41
|
import { useQuery, keepPreviousData } from '@tanstack/react-query';
|
|
42
|
+
import { Image as ExpoImage } from 'expo-image';
|
|
42
43
|
import { useTheme } from '@oxy.so/bloom/theme';
|
|
43
44
|
import { logger } from '@oxy.so/core';
|
|
44
45
|
import { useOxy } from "../context/oxyRuntimeContext.js";
|
|
@@ -46,8 +47,10 @@ import { useI18n } from "../hooks/useI18n.js";
|
|
|
46
47
|
import { useReduceMotion } from "../hooks/useReduceMotion.js";
|
|
47
48
|
import { useSurfaceHeader } from "../hooks/useSurfaceHeader.js";
|
|
48
49
|
import { toast } from '@oxy.so/bloom/toast';
|
|
49
|
-
import {
|
|
50
|
+
import { getImageSize } from '../utils/imageSize';
|
|
51
|
+
|
|
50
52
|
/** Component name used in `logger` context for filtered diagnostics. */
|
|
53
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
51
54
|
const LOG_COMPONENT = 'AvatarCropScreen';
|
|
52
55
|
|
|
53
56
|
/** Final crop result handed back to the caller. */
|
|
@@ -93,24 +96,30 @@ function clampTranslation(tx, ty, s, baseW, baseH) {
|
|
|
93
96
|
};
|
|
94
97
|
}
|
|
95
98
|
/**
|
|
96
|
-
* Measure an image's intrinsic size via `
|
|
97
|
-
* it can be a React Query `queryFn` (no component
|
|
98
|
-
*
|
|
99
|
-
* Mirrors the `measurePhotoDimensions` helper the
|
|
99
|
+
* Measure an image's intrinsic size via `getImageSize` (expo-image on a
|
|
100
|
+
* device), as a Promise so it can be a React Query `queryFn` (no component
|
|
101
|
+
* state / effects). Rejects on a load failure or degenerate dimensions so the
|
|
102
|
+
* query surfaces `isError`. Mirrors the `measurePhotoDimensions` helper the
|
|
103
|
+
* photo grid uses.
|
|
100
104
|
*/
|
|
101
|
-
function measureImageSize(uri) {
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
105
|
+
async function measureImageSize(uri) {
|
|
106
|
+
let size;
|
|
107
|
+
try {
|
|
108
|
+
size = await getImageSize(uri);
|
|
109
|
+
} catch {
|
|
110
|
+
throw new Error('Image measurement failed');
|
|
111
|
+
}
|
|
112
|
+
const {
|
|
113
|
+
width,
|
|
114
|
+
height
|
|
115
|
+
} = size;
|
|
116
|
+
if (!Number.isFinite(width) || !Number.isFinite(height) || width <= 0 || height <= 0) {
|
|
117
|
+
throw new Error('Image reported invalid dimensions');
|
|
118
|
+
}
|
|
119
|
+
return {
|
|
120
|
+
width,
|
|
121
|
+
height
|
|
122
|
+
};
|
|
114
123
|
}
|
|
115
124
|
|
|
116
125
|
/**
|
|
@@ -283,7 +292,7 @@ const AvatarCropScreen = ({
|
|
|
283
292
|
|
|
284
293
|
// Natural size of the source image. Known up front (device/camera sources pass
|
|
285
294
|
// the dimensions) OR measured lazily from `effectiveUri` via a React Query read
|
|
286
|
-
// (no effect) — the same
|
|
295
|
+
// (no effect) — the same getImageSize→useQuery pattern the photo grid uses.
|
|
287
296
|
const hasPassedDimensions = !!(sourceWidth && sourceHeight);
|
|
288
297
|
const measureQuery = useQuery({
|
|
289
298
|
queryKey: ['avatarCropMeasure', effectiveUri],
|
|
@@ -872,12 +881,19 @@ const AvatarCropScreen = ({
|
|
|
872
881
|
gesture: composedGesture,
|
|
873
882
|
children: /*#__PURE__*/_jsx(View, {
|
|
874
883
|
style: styles.viewport,
|
|
875
|
-
children: baseFit && effectiveUri ?
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
884
|
+
children: baseFit && effectiveUri ?
|
|
885
|
+
/*#__PURE__*/
|
|
886
|
+
// Reanimated moves the box; expo-image draws the pixels, so the
|
|
887
|
+
// crop stage never needs react-native's GIF/WebP decoders.
|
|
888
|
+
_jsx(Animated.View, {
|
|
879
889
|
style: [styles.image, imageAnimatedStyle],
|
|
880
|
-
|
|
890
|
+
children: /*#__PURE__*/_jsx(ExpoImage, {
|
|
891
|
+
source: {
|
|
892
|
+
uri: effectiveUri
|
|
893
|
+
},
|
|
894
|
+
style: StyleSheet.absoluteFill,
|
|
895
|
+
contentFit: "cover"
|
|
896
|
+
})
|
|
881
897
|
}) : /*#__PURE__*/_jsx(SpinnerIcon, {
|
|
882
898
|
color: "#ffffff"
|
|
883
899
|
})
|