@react-navigation/elements 3.0.0-alpha.5 → 3.0.0-alpha.50
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/module/ActivityView.js +90 -0
- package/lib/module/ActivityView.js.map +1 -0
- package/lib/module/ActivityView.native.js +67 -0
- package/lib/module/ActivityView.native.js.map +1 -0
- package/lib/module/Badge.js +6 -7
- package/lib/module/Badge.js.map +1 -1
- package/lib/module/BlurEffectBackground.js +3 -3
- package/lib/module/BlurEffectBackground.js.map +1 -1
- package/lib/module/Button.js +99 -14
- package/lib/module/Button.js.map +1 -1
- package/lib/module/Color.js +565 -4
- package/lib/module/Color.js.map +1 -1
- package/lib/module/Container.js +12 -1
- package/lib/module/Container.js.map +1 -1
- package/lib/module/Header/Header.js +30 -18
- package/lib/module/Header/Header.js.map +1 -1
- package/lib/module/Header/HeaderBackButton.js +27 -13
- package/lib/module/Header/HeaderBackButton.js.map +1 -1
- package/lib/module/Header/HeaderButton.js +4 -5
- package/lib/module/Header/HeaderButton.js.map +1 -1
- package/lib/module/Header/HeaderButtonBackground.js +1 -2
- package/lib/module/Header/HeaderButtonBackground.js.map +1 -1
- package/lib/module/Header/HeaderIcon.js +14 -17
- package/lib/module/Header/HeaderIcon.js.map +1 -1
- package/lib/module/Header/HeaderSearchBar.js +36 -26
- package/lib/module/Header/HeaderSearchBar.js.map +1 -1
- package/lib/module/Header/getHeaderTitle.js.map +1 -1
- package/lib/module/Header/useHeaderHeight.js +1 -1
- package/lib/module/Header/useHeaderHeight.js.map +1 -1
- package/lib/module/Label/getLabel.js.map +1 -1
- package/lib/module/LiquidGlassView.ios.js +1 -2
- package/lib/module/LiquidGlassView.ios.js.map +1 -1
- package/lib/module/LiquidGlassView.js +0 -4
- package/lib/module/LiquidGlassView.js.map +1 -1
- package/lib/module/PlatformColor.js +1 -0
- package/lib/module/PlatformColor.js.map +1 -1
- package/lib/module/PlatformColor.native.js +1 -1
- package/lib/module/PlatformColor.native.js.map +1 -1
- package/lib/module/PlatformIcon.js +46 -0
- package/lib/module/PlatformIcon.js.map +1 -0
- package/lib/module/PlatformPressable.js +64 -21
- package/lib/module/PlatformPressable.js.map +1 -1
- package/lib/module/SafeAreaProviderCompat.js +1 -1
- package/lib/module/SafeAreaProviderCompat.js.map +1 -1
- package/lib/module/Screen.js +31 -18
- package/lib/module/Screen.js.map +1 -1
- package/lib/module/index.js +2 -7
- package/lib/module/index.js.map +1 -1
- package/lib/module/internal.js +1 -1
- package/lib/module/internal.js.map +1 -1
- package/lib/module/useFrameSize.js +6 -2
- package/lib/module/useFrameSize.js.map +1 -1
- package/lib/typescript/src/ActivityView.d.ts +31 -0
- package/lib/typescript/src/ActivityView.d.ts.map +1 -0
- package/lib/typescript/src/ActivityView.native.d.ts +3 -0
- package/lib/typescript/src/ActivityView.native.d.ts.map +1 -0
- package/lib/typescript/src/Badge.d.ts +7 -6
- package/lib/typescript/src/Badge.d.ts.map +1 -1
- package/lib/typescript/src/BlurEffectBackground.d.ts +2 -2
- package/lib/typescript/src/BlurEffectBackground.d.ts.map +1 -1
- package/lib/typescript/src/Button.d.ts +54 -6
- package/lib/typescript/src/Button.d.ts.map +1 -1
- package/lib/typescript/src/Color.d.ts +4 -4
- package/lib/typescript/src/Color.d.ts.map +1 -1
- package/lib/typescript/src/Container.d.ts +8 -4
- package/lib/typescript/src/Container.d.ts.map +1 -1
- package/lib/typescript/src/Header/Header.d.ts +5 -4
- package/lib/typescript/src/Header/Header.d.ts.map +1 -1
- package/lib/typescript/src/Header/HeaderBackButton.d.ts +3 -2
- package/lib/typescript/src/Header/HeaderBackButton.d.ts.map +1 -1
- package/lib/typescript/src/Header/HeaderBackground.d.ts +5 -5
- package/lib/typescript/src/Header/HeaderBackground.d.ts.map +1 -1
- package/lib/typescript/src/Header/HeaderButton.d.ts +7 -2
- package/lib/typescript/src/Header/HeaderButton.d.ts.map +1 -1
- package/lib/typescript/src/Header/HeaderButtonBackground.d.ts +1 -1
- package/lib/typescript/src/Header/HeaderButtonBackground.d.ts.map +1 -1
- package/lib/typescript/src/Header/HeaderIcon.d.ts +10 -4
- package/lib/typescript/src/Header/HeaderIcon.d.ts.map +1 -1
- package/lib/typescript/src/Header/HeaderSearchBar.d.ts +10 -7
- package/lib/typescript/src/Header/HeaderSearchBar.d.ts.map +1 -1
- package/lib/typescript/src/Header/HeaderTitle.d.ts +4 -4
- package/lib/typescript/src/Header/HeaderTitle.d.ts.map +1 -1
- package/lib/typescript/src/Header/getHeaderTitle.d.ts +2 -2
- package/lib/typescript/src/Header/getHeaderTitle.d.ts.map +1 -1
- package/lib/typescript/src/Label/Label.d.ts +1 -1
- package/lib/typescript/src/Label/Label.d.ts.map +1 -1
- package/lib/typescript/src/Label/getLabel.d.ts +2 -2
- package/lib/typescript/src/Label/getLabel.d.ts.map +1 -1
- package/lib/typescript/src/LiquidGlassView.d.ts +7 -5
- package/lib/typescript/src/LiquidGlassView.d.ts.map +1 -1
- package/lib/typescript/src/LiquidGlassView.ios.d.ts +4 -2
- package/lib/typescript/src/LiquidGlassView.ios.d.ts.map +1 -1
- package/lib/typescript/src/MissingIcon.d.ts +3 -3
- package/lib/typescript/src/MissingIcon.d.ts.map +1 -1
- package/lib/typescript/src/PlatformColor.d.ts +1 -0
- package/lib/typescript/src/PlatformColor.d.ts.map +1 -1
- package/lib/typescript/src/PlatformColor.native.d.ts +1 -1
- package/lib/typescript/src/PlatformColor.native.d.ts.map +1 -1
- package/lib/typescript/src/PlatformIcon.d.ts +11 -0
- package/lib/typescript/src/PlatformIcon.d.ts.map +1 -0
- package/lib/typescript/src/PlatformPressable.d.ts +12 -15
- package/lib/typescript/src/PlatformPressable.d.ts.map +1 -1
- package/lib/typescript/src/SafeAreaProviderCompat.d.ts +1 -1
- package/lib/typescript/src/SafeAreaProviderCompat.d.ts.map +1 -1
- package/lib/typescript/src/Screen.d.ts +7 -7
- package/lib/typescript/src/Screen.d.ts.map +1 -1
- package/lib/typescript/src/Text.d.ts +1 -1
- package/lib/typescript/src/Text.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +21 -21
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/internal.d.ts +6 -6
- package/lib/typescript/src/internal.d.ts.map +1 -1
- package/lib/typescript/src/types.d.ts +120 -70
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/lib/typescript/src/useFrameSize.d.ts +2 -2
- package/lib/typescript/src/useFrameSize.d.ts.map +1 -1
- package/package.json +27 -22
- package/src/ActivityView.native.tsx +90 -0
- package/src/ActivityView.tsx +129 -0
- package/src/Badge.tsx +11 -10
- package/src/BlurEffectBackground.tsx +3 -3
- package/src/Button.tsx +177 -28
- package/src/Color.tsx +755 -8
- package/src/Container.tsx +21 -4
- package/src/Header/Header.tsx +47 -27
- package/src/Header/HeaderBackButton.tsx +34 -20
- package/src/Header/HeaderBackground.tsx +3 -3
- package/src/Header/HeaderButton.tsx +16 -18
- package/src/Header/HeaderButtonBackground.tsx +1 -4
- package/src/Header/HeaderIcon.tsx +26 -13
- package/src/Header/HeaderSearchBar.tsx +58 -49
- package/src/Header/HeaderTitle.tsx +3 -3
- package/src/Header/getHeaderTitle.tsx +4 -1
- package/src/Header/useHeaderHeight.tsx +1 -1
- package/src/Label/getLabel.tsx +1 -1
- package/src/LiquidGlassView.ios.tsx +14 -9
- package/src/LiquidGlassView.tsx +15 -11
- package/src/MissingIcon.tsx +2 -2
- package/src/PlatformColor.native.tsx +1 -1
- package/src/PlatformColor.tsx +4 -0
- package/src/PlatformIcon.tsx +70 -0
- package/src/PlatformPressable.tsx +108 -48
- package/src/SafeAreaProviderCompat.tsx +1 -1
- package/src/Screen.tsx +41 -28
- package/src/index.tsx +2 -16
- package/src/internal.tsx +1 -1
- package/src/types.tsx +153 -76
- package/src/useFrameSize.tsx +11 -4
- package/lib/module/Lazy.js +0 -42
- package/lib/module/Lazy.js.map +0 -1
- package/lib/module/assets/back-icon.ios.svg +0 -4
- package/lib/module/assets/back-icon@1x.android.png +0 -0
- package/lib/module/assets/back-icon@1x.ios.png +0 -0
- package/lib/module/assets/back-icon@2x.android.png +0 -0
- package/lib/module/assets/back-icon@2x.ios.png +0 -0
- package/lib/module/assets/back-icon@3x.android.png +0 -0
- package/lib/module/assets/back-icon@3x.ios.png +0 -0
- package/lib/module/assets/back-icon@4x.android.png +0 -0
- package/lib/module/assets/back-icon@4x.ios.png +0 -0
- package/lib/module/assets/clear-icon@1x.png +0 -0
- package/lib/module/assets/clear-icon@2x.png +0 -0
- package/lib/module/assets/clear-icon@3x.png +0 -0
- package/lib/module/assets/clear-icon@4x.png +0 -0
- package/lib/module/assets/close-icon@1x.png +0 -0
- package/lib/module/assets/close-icon@2x.png +0 -0
- package/lib/module/assets/close-icon@3x.png +0 -0
- package/lib/module/assets/close-icon@4x.png +0 -0
- package/lib/module/assets/search-icon-legacy@1x.ios.png +0 -0
- package/lib/module/assets/search-icon-legacy@2x.ios.png +0 -0
- package/lib/module/assets/search-icon-legacy@3x.ios.png +0 -0
- package/lib/module/assets/search-icon-legacy@4x.ios.png +0 -0
- package/lib/module/assets/search-icon.ios.svg +0 -4
- package/lib/module/assets/search-icon@1x.android.png +0 -0
- package/lib/module/assets/search-icon@1x.ios.png +0 -0
- package/lib/module/assets/search-icon@2x.android.png +0 -0
- package/lib/module/assets/search-icon@2x.ios.png +0 -0
- package/lib/module/assets/search-icon@3x.android.png +0 -0
- package/lib/module/assets/search-icon@3x.ios.png +0 -0
- package/lib/module/assets/search-icon@4x.android.png +0 -0
- package/lib/module/assets/search-icon@4x.ios.png +0 -0
- package/lib/typescript/src/Lazy.d.ts +0 -31
- package/lib/typescript/src/Lazy.d.ts.map +0 -1
- package/src/Lazy.tsx +0 -59
- package/src/assets/back-icon.ios.svg +0 -4
- package/src/assets/back-icon@1x.android.png +0 -0
- package/src/assets/back-icon@1x.ios.png +0 -0
- package/src/assets/back-icon@2x.android.png +0 -0
- package/src/assets/back-icon@2x.ios.png +0 -0
- package/src/assets/back-icon@3x.android.png +0 -0
- package/src/assets/back-icon@3x.ios.png +0 -0
- package/src/assets/back-icon@4x.android.png +0 -0
- package/src/assets/back-icon@4x.ios.png +0 -0
- package/src/assets/clear-icon@1x.png +0 -0
- package/src/assets/clear-icon@2x.png +0 -0
- package/src/assets/clear-icon@3x.png +0 -0
- package/src/assets/clear-icon@4x.png +0 -0
- package/src/assets/close-icon@1x.png +0 -0
- package/src/assets/close-icon@2x.png +0 -0
- package/src/assets/close-icon@3x.png +0 -0
- package/src/assets/close-icon@4x.png +0 -0
- package/src/assets/search-icon-legacy@1x.ios.png +0 -0
- package/src/assets/search-icon-legacy@2x.ios.png +0 -0
- package/src/assets/search-icon-legacy@3x.ios.png +0 -0
- package/src/assets/search-icon-legacy@4x.ios.png +0 -0
- package/src/assets/search-icon.ios.svg +0 -4
- package/src/assets/search-icon@1x.android.png +0 -0
- package/src/assets/search-icon@1x.ios.png +0 -0
- package/src/assets/search-icon@2x.android.png +0 -0
- package/src/assets/search-icon@2x.ios.png +0 -0
- package/src/assets/search-icon@3x.android.png +0 -0
- package/src/assets/search-icon@3x.ios.png +0 -0
- package/src/assets/search-icon@4x.android.png +0 -0
- package/src/assets/search-icon@4x.ios.png +0 -0
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { Activity, useCallback, useEffect, useState } from 'react';
|
|
4
|
+
import { Platform } from 'react-native';
|
|
5
|
+
import { Container } from "./Container.js";
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
export function ActivityView({
|
|
8
|
+
mode,
|
|
9
|
+
visible,
|
|
10
|
+
delay = 500,
|
|
11
|
+
style,
|
|
12
|
+
children
|
|
13
|
+
}) {
|
|
14
|
+
const [delayedMode, setDelayedMode] = useState(mode);
|
|
15
|
+
useEffect(() => {
|
|
16
|
+
if (!delay) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
const timer = setTimeout(() => {
|
|
20
|
+
setDelayedMode(mode);
|
|
21
|
+
}, delay);
|
|
22
|
+
return () => clearTimeout(timer);
|
|
23
|
+
}, [delay, mode]);
|
|
24
|
+
const display = visible ? 'flex' : 'none';
|
|
25
|
+
const activityMode = mode !== 'paused' || delay && delayedMode !== 'paused' ? 'visible' : 'hidden';
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Activity has 2 modes, visible and hidden - hidden unmounts effects
|
|
29
|
+
* But what we want is to unmount effects, without hiding content
|
|
30
|
+
* So we use hidden mode, but unset display: none to make content visible
|
|
31
|
+
*/
|
|
32
|
+
const onRef = useCallback(node => {
|
|
33
|
+
if (Platform.OS !== 'web' || !(node && node instanceof HTMLElement)) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
const observers = [];
|
|
37
|
+
const observe = () => {
|
|
38
|
+
// Remove previous observers
|
|
39
|
+
observers.forEach(o => o.disconnect());
|
|
40
|
+
observers.length = 0;
|
|
41
|
+
const children = node.childNodes;
|
|
42
|
+
|
|
43
|
+
// When the style attribute for children is updated by React
|
|
44
|
+
// We observe it and update display to make content visible
|
|
45
|
+
children.forEach(child => {
|
|
46
|
+
if (child instanceof HTMLElement) {
|
|
47
|
+
child.style.display = display;
|
|
48
|
+
const o = new MutationObserver(() => {
|
|
49
|
+
child.style.display = display;
|
|
50
|
+
});
|
|
51
|
+
o.observe(child, {
|
|
52
|
+
attributes: true,
|
|
53
|
+
attributeFilter: ['style']
|
|
54
|
+
});
|
|
55
|
+
observers.push(o);
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
};
|
|
59
|
+
observe();
|
|
60
|
+
|
|
61
|
+
// React removes refs when `Activity` is hidden
|
|
62
|
+
// So we render outside of the `Activity` and observer child list
|
|
63
|
+
const observer = new MutationObserver(observe);
|
|
64
|
+
observer.observe(node, {
|
|
65
|
+
childList: true
|
|
66
|
+
});
|
|
67
|
+
return () => {
|
|
68
|
+
observer.disconnect();
|
|
69
|
+
observers.forEach(o => o.disconnect());
|
|
70
|
+
};
|
|
71
|
+
}, [display]);
|
|
72
|
+
return /*#__PURE__*/_jsx(Container, {
|
|
73
|
+
ref: onRef,
|
|
74
|
+
style: {
|
|
75
|
+
display: 'contents'
|
|
76
|
+
},
|
|
77
|
+
children: /*#__PURE__*/_jsx(Activity, {
|
|
78
|
+
mode: activityMode,
|
|
79
|
+
children: /*#__PURE__*/_jsx(Container, {
|
|
80
|
+
inert: mode !== 'normal',
|
|
81
|
+
style: {
|
|
82
|
+
...style,
|
|
83
|
+
display
|
|
84
|
+
},
|
|
85
|
+
children: children
|
|
86
|
+
})
|
|
87
|
+
})
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=ActivityView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Activity","useCallback","useEffect","useState","Platform","Container","jsx","_jsx","ActivityView","mode","visible","delay","style","children","delayedMode","setDelayedMode","timer","setTimeout","clearTimeout","display","activityMode","onRef","node","OS","HTMLElement","observers","observe","forEach","o","disconnect","length","childNodes","child","MutationObserver","attributes","attributeFilter","push","observer","childList","ref","inert"],"sourceRoot":"../../src","sources":["ActivityView.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { Activity, useEffect, useState } from 'react';
|
|
4
|
+
import { NativeComponentRegistry } from 'react-native';
|
|
5
|
+
|
|
6
|
+
// eslint-disable-next-line import-x/extensions
|
|
7
|
+
|
|
8
|
+
import { Container } from "./Container.js";
|
|
9
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
10
|
+
export function ActivityView({
|
|
11
|
+
mode,
|
|
12
|
+
visible,
|
|
13
|
+
delay = 500,
|
|
14
|
+
style,
|
|
15
|
+
children
|
|
16
|
+
}) {
|
|
17
|
+
const [delayedMode, setDelayedMode] = useState(mode);
|
|
18
|
+
useEffect(() => {
|
|
19
|
+
if (!delay) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
const timer = setTimeout(() => {
|
|
23
|
+
setDelayedMode(mode);
|
|
24
|
+
}, delay);
|
|
25
|
+
return () => clearTimeout(timer);
|
|
26
|
+
}, [delay, mode]);
|
|
27
|
+
const display = visible ? 'flex' : 'none';
|
|
28
|
+
const activityMode = mode !== 'paused' || delay && delayedMode !== 'paused' ? 'visible' : 'hidden';
|
|
29
|
+
return /*#__PURE__*/_jsx(Activity, {
|
|
30
|
+
mode: activityMode,
|
|
31
|
+
children: /*#__PURE__*/_jsx(ActivityContentView, {
|
|
32
|
+
style: {
|
|
33
|
+
display: 'contents'
|
|
34
|
+
},
|
|
35
|
+
children: /*#__PURE__*/_jsx(Container, {
|
|
36
|
+
inert: mode !== 'normal',
|
|
37
|
+
style: {
|
|
38
|
+
...style,
|
|
39
|
+
/**
|
|
40
|
+
* The visibility of the nested view is controlled by `Activity`
|
|
41
|
+
* It'll be overridden to `display: 'none'` when `mode="hidden"` regardless of what we set
|
|
42
|
+
* So we set the visibility on another view instead
|
|
43
|
+
*/
|
|
44
|
+
display
|
|
45
|
+
},
|
|
46
|
+
children: children
|
|
47
|
+
})
|
|
48
|
+
})
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
const STYLE = {
|
|
52
|
+
display: {
|
|
53
|
+
/**
|
|
54
|
+
* React `Activity` sets `display: 'none'` when `mode="hidden"` to unmount effects
|
|
55
|
+
* But we want to keep the content visible, so we switch it to `display: 'contents'`
|
|
56
|
+
*/
|
|
57
|
+
process: () => 'contents'
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
const VIEW_CONFIG = {
|
|
61
|
+
uiViewClassName: 'RCTView',
|
|
62
|
+
validAttributes: {
|
|
63
|
+
style: STYLE
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
const ActivityContentView = NativeComponentRegistry.get('ReactNavigationActivityContentView', () => VIEW_CONFIG);
|
|
67
|
+
//# sourceMappingURL=ActivityView.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Activity","useEffect","useState","NativeComponentRegistry","Container","jsx","_jsx","ActivityView","mode","visible","delay","style","children","delayedMode","setDelayedMode","timer","setTimeout","clearTimeout","display","activityMode","ActivityContentView","inert","STYLE","process","VIEW_CONFIG","uiViewClassName","validAttributes","get"],"sourceRoot":"../../src","sources":["ActivityView.native.tsx"],"mappings":";;AAAA,SAASA,QAAQ,EAAEC,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AACrD,SAEEC,uBAAuB,QAElB,cAAc;;AAErB;;AAEA,SAASC,SAAS,QAAQ,gBAAa;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAExC,OAAO,SAASC,YAAYA,CAAC;EAC3BC,IAAI;EACJC,OAAO;EACPC,KAAK,GAAG,GAAG;EACXC,KAAK;EACLC;AACK,CAAC,EAAE;EACR,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAGZ,QAAQ,CAACM,IAAI,CAAC;EAEpDP,SAAS,CAAC,MAAM;IACd,IAAI,CAACS,KAAK,EAAE;MACV;IACF;IAEA,MAAMK,KAAK,GAAGC,UAAU,CAAC,MAAM;MAC7BF,cAAc,CAACN,IAAI,CAAC;IACtB,CAAC,EAAEE,KAAK,CAAC;IAET,OAAO,MAAMO,YAAY,CAACF,KAAK,CAAC;EAClC,CAAC,EAAE,CAACL,KAAK,EAAEF,IAAI,CAAC,CAAC;EAEjB,MAAMU,OAAO,GAAGT,OAAO,GAAG,MAAM,GAAG,MAAM;EACzC,MAAMU,YAAY,GAChBX,IAAI,KAAK,QAAQ,IAAKE,KAAK,IAAIG,WAAW,KAAK,QAAS,GACpD,SAAS,GACT,QAAQ;EAEd,oBACEP,IAAA,CAACN,QAAQ;IAACQ,IAAI,EAAEW,YAAa;IAAAP,QAAA,eAC3BN,IAAA,CAACc,mBAAmB;MAACT,KAAK,EAAE;QAAEO,OAAO,EAAE;MAAW,CAAE;MAAAN,QAAA,eAClDN,IAAA,CAACF,SAAS;QACRiB,KAAK,EAAEb,IAAI,KAAK,QAAS;QACzBG,KAAK,EAAE;UACL,GAAGA,KAAK;UACR;AACZ;AACA;AACA;AACA;UACYO;QACF,CAAE;QAAAN,QAAA,EAEDA;MAAQ,CACA;IAAC,CACO;EAAC,CACd,CAAC;AAEf;AAEA,MAAMU,KAA8D,GAAG;EACrEJ,OAAO,EAAE;IACP;AACJ;AACA;AACA;IACIK,OAAO,EAAEA,CAAA,KAAM;EACjB;AACF,CAAC;AAED,MAAMC,WAAW,GAAG;EAClBC,eAAe,EAAE,SAAS;EAC1BC,eAAe,EAAE;IACff,KAAK,EAAEW;EACT;AACF,CAAC;AAUD,MAAMF,mBAA4D,GAChEjB,uBAAuB,CAACwB,GAAG,CACzB,oCAAoC,EACpC,MAAMH,WACR,CAAC","ignoreList":[]}
|
package/lib/module/Badge.js
CHANGED
|
@@ -23,18 +23,19 @@ export function Badge({
|
|
|
23
23
|
if (!rendered) {
|
|
24
24
|
return;
|
|
25
25
|
}
|
|
26
|
-
Animated.timing(opacity, {
|
|
26
|
+
const animation = Animated.timing(opacity, {
|
|
27
27
|
toValue: visible ? 1 : 0,
|
|
28
28
|
duration: 150,
|
|
29
29
|
useNativeDriver
|
|
30
|
-
})
|
|
30
|
+
});
|
|
31
|
+
animation.start(({
|
|
31
32
|
finished
|
|
32
33
|
}) => {
|
|
33
34
|
if (finished && !visible) {
|
|
34
35
|
setRendered(false);
|
|
35
36
|
}
|
|
36
37
|
});
|
|
37
|
-
return () =>
|
|
38
|
+
return () => animation.stop();
|
|
38
39
|
}, [opacity, rendered, visible]);
|
|
39
40
|
if (!rendered) {
|
|
40
41
|
if (visible) {
|
|
@@ -43,13 +44,11 @@ export function Badge({
|
|
|
43
44
|
return null;
|
|
44
45
|
}
|
|
45
46
|
}
|
|
46
|
-
|
|
47
|
-
// @ts-expect-error: backgroundColor definitely exists
|
|
48
47
|
const {
|
|
49
48
|
backgroundColor = colors.notification,
|
|
50
49
|
...restStyle
|
|
51
|
-
} = StyleSheet.flatten(style)
|
|
52
|
-
const textColor = Color(backgroundColor)
|
|
50
|
+
} = StyleSheet.flatten(style) ?? {};
|
|
51
|
+
const textColor = Color.foreground(backgroundColor);
|
|
53
52
|
const borderRadius = size / 2;
|
|
54
53
|
const fontSize = Math.floor(size * 3 / 4);
|
|
55
54
|
return /*#__PURE__*/_jsx(Animated.Text, {
|
package/lib/module/Badge.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useTheme","React","Animated","Platform","StyleSheet","Color","jsx","_jsx","useNativeDriver","OS","Badge","children","style","visible","size","rest","opacity","useState","Value","rendered","setRendered","colors","fonts","useEffect","timing","toValue","duration","start","finished","
|
|
1
|
+
{"version":3,"names":["useTheme","React","Animated","Platform","StyleSheet","Color","jsx","_jsx","useNativeDriver","OS","Badge","children","style","visible","size","rest","opacity","useState","Value","rendered","setRendered","colors","fonts","useEffect","animation","timing","toValue","duration","start","finished","stop","backgroundColor","notification","restStyle","flatten","textColor","foreground","borderRadius","fontSize","Math","floor","Text","numberOfLines","transform","scale","interpolate","inputRange","outputRange","color","lineHeight","height","minWidth","borderCurve","regular","styles","container","create","alignSelf","textAlign","paddingHorizontal","overflow"],"sourceRoot":"../../src","sources":["Badge.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -15,15 +15,15 @@ export function BlurEffectBackground({
|
|
|
15
15
|
children,
|
|
16
16
|
...rest
|
|
17
17
|
}) {
|
|
18
|
-
let
|
|
18
|
+
let blurStyle;
|
|
19
|
+
let containerStyle, blurBackground, colorBackground;
|
|
19
20
|
if (Platform.OS === 'web' && blurEffect && blurEffect !== 'none') {
|
|
20
21
|
const blurBackgroundColor = getBlurBackgroundColor(blurEffect);
|
|
21
22
|
if (blurBackgroundColor) {
|
|
22
23
|
const backdropFilter = `saturate(180%) blur(30px)`;
|
|
23
24
|
blurStyle = {
|
|
24
|
-
// @ts-expect-error backdropFilter is web-only
|
|
25
25
|
backdropFilter,
|
|
26
|
-
|
|
26
|
+
WebkitBackdropFilter: backdropFilter
|
|
27
27
|
};
|
|
28
28
|
blurBackground = /*#__PURE__*/_jsx("div", {
|
|
29
29
|
style: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Animated","Platform","StyleSheet","View","getBlurBackgroundColor","jsx","_jsx","jsxs","_jsxs","BlurEffectBackground","blurEffect","style","children","rest","
|
|
1
|
+
{"version":3,"names":["React","Animated","Platform","StyleSheet","View","getBlurBackgroundColor","jsx","_jsx","jsxs","_jsxs","BlurEffectBackground","blurEffect","style","children","rest","blurStyle","containerStyle","blurBackground","colorBackground","OS","blurBackgroundColor","backdropFilter","WebkitBackdropFilter","position","left","right","top","bottom","zIndex","backgroundColor","flattenedStyle","flatten","absoluteFill"],"sourceRoot":"../../src","sources":["BlurEffectBackground.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SACEC,QAAQ,EACRC,QAAQ,EAERC,UAAU,EACVC,IAAI,QAGC,cAAc;AAErB,SAEEC,sBAAsB,QACjB,6BAA0B;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAQlC;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,oBAAoBA,CAAC;EACnCC,UAAU;EACVC,KAAK;EACLC,QAAQ;EACR,GAAGC;AACE,CAAC,EAAE;EACR,IAAIC,SAAwD;EAC5D,IAAIC,cAAc,EAAEC,cAAc,EAAEC,eAAe;EAEnD,IAAIhB,QAAQ,CAACiB,EAAE,KAAK,KAAK,IAAIR,UAAU,IAAIA,UAAU,KAAK,MAAM,EAAE;IAChE,MAAMS,mBAAmB,GAAGf,sBAAsB,CAACM,UAAU,CAAC;IAE9D,IAAIS,mBAAmB,EAAE;MACvB,MAAMC,cAAc,GAAG,2BAA2B;MAElDN,SAAS,GAAG;QACVM,cAAc;QACdC,oBAAoB,EAAED;MACxB,CAAC;MAEDJ,cAAc,gBACZV,IAAA;QACEK,KAAK,EAAE;UACLW,QAAQ,EAAE,UAAU;UACpBC,IAAI,EAAE,CAAC;UACPC,KAAK,EAAE,CAAC;UACRC,GAAG,EAAE,CAAC;UACNC,MAAM,EAAE,CAAC;UACTC,MAAM,EAAE,CAAC,CAAC;UACVC,eAAe,EAAET;QACnB;MAAE,CACH,CACF;MAED,MAAMU,cAAc,GAAG3B,UAAU,CAAC4B,OAAO,CAACnB,KAAK,CAAC,IAAI,CAAC,CAAC;MAEtDI,cAAc,GAAG,CAACc,cAAc,EAAE;QAAED,eAAe,EAAE;MAAc,CAAC,CAAC;MACrEX,eAAe,GACb,iBAAiB,IAAIY,cAAc,IACnCA,cAAc,CAACD,eAAe,KAAK,aAAa,gBAC9CtB,IAAA,CAACN,QAAQ,CAACG,IAAI;QACZQ,KAAK,EAAE,CACLT,UAAU,CAAC6B,YAAY,EACvB;UACEJ,MAAM,EAAE,CAAC,CAAC;UACVC,eAAe,EAAEC,cAAc,CAACD;QAClC,CAAC;MACD,CACH,CAAC,GACA,IAAI;IACZ;EACF,CAAC,MAAM;IACLb,cAAc,GAAGJ,KAAK;EACxB;EAEA,oBACEH,KAAA,CAACL,IAAI;IAACQ,KAAK,EAAE,CAACG,SAAS,EAAEC,cAAc,CAAE;IAAA,GAAKF,IAAI;IAAAD,QAAA,GAC/CI,cAAc,EACdC,eAAe,EACfL,QAAQ;EAAA,CACL,CAAC;AAEX","ignoreList":[]}
|
package/lib/module/Button.js
CHANGED
|
@@ -2,15 +2,32 @@
|
|
|
2
2
|
|
|
3
3
|
import { useLinkProps, useTheme } from '@react-navigation/native';
|
|
4
4
|
import * as React from 'react';
|
|
5
|
-
import { Platform, StyleSheet } from 'react-native';
|
|
5
|
+
import { ActivityIndicator, Platform, StyleSheet, View } from 'react-native';
|
|
6
6
|
import { Color } from "./Color.js";
|
|
7
|
+
import { PlatformIcon } from "./PlatformIcon.js";
|
|
7
8
|
import { PlatformPressable } from "./PlatformPressable.js";
|
|
8
9
|
import { Text } from "./Text.js";
|
|
9
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
10
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
10
11
|
const BUTTON_RADIUS = 40;
|
|
12
|
+
const ICON_SIZE = 14;
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Component to render a button that navigates to a screen using a path.
|
|
16
|
+
* Uses an anchor tag on the web.
|
|
17
|
+
*
|
|
18
|
+
* @param props.in Name of the current or parent screen whose navigator contains the target screen.
|
|
19
|
+
* @param props.screen Name of the screen to navigate to (e.g. `'Feeds'`).
|
|
20
|
+
* @param props.params Params to pass to the screen to navigate to (e.g. `{ sort: 'hot' }`).
|
|
21
|
+
* @param props.href Optional absolute path to use for the href (e.g. `/feeds/hot`).
|
|
22
|
+
* @param props.action Optional action to override the in-page navigation. The `href` is still derived from `screen`, so this can be used to render a link while dispatching a different action (e.g. a `replace`).
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Component to render a button.
|
|
27
|
+
*/
|
|
28
|
+
|
|
11
29
|
export function Button(props) {
|
|
12
30
|
if ('screen' in props || 'action' in props) {
|
|
13
|
-
// @ts-expect-error: This is already type-checked by the prop types
|
|
14
31
|
return /*#__PURE__*/_jsx(ButtonLink, {
|
|
15
32
|
...props
|
|
16
33
|
});
|
|
@@ -21,28 +38,45 @@ export function Button(props) {
|
|
|
21
38
|
}
|
|
22
39
|
}
|
|
23
40
|
function ButtonLink({
|
|
41
|
+
in: parent,
|
|
24
42
|
screen,
|
|
25
43
|
params,
|
|
26
44
|
action,
|
|
27
45
|
href,
|
|
46
|
+
onPress,
|
|
28
47
|
...rest
|
|
29
48
|
}) {
|
|
30
|
-
// @ts-expect-error:
|
|
49
|
+
// @ts-expect-error: destructuring loses the relationship between target props
|
|
31
50
|
const props = useLinkProps({
|
|
51
|
+
in: parent,
|
|
32
52
|
screen,
|
|
33
53
|
params,
|
|
34
54
|
action,
|
|
35
55
|
href
|
|
36
56
|
});
|
|
57
|
+
const [isPending, startTransition] = React.useTransition();
|
|
58
|
+
|
|
59
|
+
// Avoid flashing the loading indicator when the transition is fast
|
|
60
|
+
const isPendingDeferred = React.useDeferredValue(isPending);
|
|
37
61
|
return /*#__PURE__*/_jsx(ButtonBase, {
|
|
38
62
|
...rest,
|
|
39
|
-
...props
|
|
63
|
+
...props,
|
|
64
|
+
loading: typeof rest.loading === 'boolean' ? rest.loading : isPending && isPendingDeferred,
|
|
65
|
+
onPress: e => {
|
|
66
|
+
onPress?.(e);
|
|
67
|
+
startTransition(() => {
|
|
68
|
+
props.onPress(e);
|
|
69
|
+
});
|
|
70
|
+
}
|
|
40
71
|
});
|
|
41
72
|
}
|
|
42
73
|
function ButtonBase({
|
|
43
74
|
variant = 'tinted',
|
|
44
75
|
color: customColor,
|
|
76
|
+
icon,
|
|
77
|
+
loading = false,
|
|
45
78
|
android_ripple,
|
|
79
|
+
disabled,
|
|
46
80
|
style,
|
|
47
81
|
children,
|
|
48
82
|
...rest
|
|
@@ -66,14 +100,29 @@ function ButtonBase({
|
|
|
66
100
|
break;
|
|
67
101
|
case 'filled':
|
|
68
102
|
backgroundColor = color;
|
|
69
|
-
textColor = Color
|
|
103
|
+
textColor = Color.foreground(backgroundColor);
|
|
70
104
|
break;
|
|
71
105
|
}
|
|
106
|
+
if (disabled || loading) {
|
|
107
|
+
textColor = dark ? 'rgba(235, 235, 245, 0.3)' : 'rgba(60, 60, 67, 0.3)';
|
|
108
|
+
if (variant !== 'plain') {
|
|
109
|
+
backgroundColor = dark ? 'rgba(118, 118, 128, 0.24)' : 'rgba(118, 118, 128, 0.12)';
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
const rippleColor = Color(textColor)?.fade(0.88).string() ?? (variant === 'filled' || dark ? 'rgba(255, 255, 255, 0.12)' : 'rgba(0, 0, 0, 0.12)');
|
|
113
|
+
const iconNode = loading ? /*#__PURE__*/_jsx(ActivityIndicator, {
|
|
114
|
+
color: textColor,
|
|
115
|
+
size: ICON_SIZE
|
|
116
|
+
}) : renderIcon(icon, textColor, ICON_SIZE);
|
|
72
117
|
return /*#__PURE__*/_jsx(PlatformPressable, {
|
|
73
118
|
...rest,
|
|
119
|
+
"aria-disabled":
|
|
120
|
+
// Keep the button focusable while loading
|
|
121
|
+
disabled || loading || undefined,
|
|
122
|
+
disabled: disabled,
|
|
74
123
|
android_ripple: {
|
|
75
|
-
|
|
76
|
-
color:
|
|
124
|
+
foreground: true,
|
|
125
|
+
color: rippleColor,
|
|
77
126
|
...android_ripple
|
|
78
127
|
},
|
|
79
128
|
pressOpacity: Platform.OS === 'ios' ? undefined : 1,
|
|
@@ -83,20 +132,56 @@ function ButtonBase({
|
|
|
83
132
|
style: [{
|
|
84
133
|
backgroundColor
|
|
85
134
|
}, styles.button, style],
|
|
86
|
-
children: /*#__PURE__*/
|
|
87
|
-
style:
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
135
|
+
children: /*#__PURE__*/_jsxs(View, {
|
|
136
|
+
style: styles.content,
|
|
137
|
+
children: [iconNode && /*#__PURE__*/_jsx(View, {
|
|
138
|
+
style: styles.icon,
|
|
139
|
+
children: iconNode
|
|
140
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
141
|
+
style: [{
|
|
142
|
+
color: textColor
|
|
143
|
+
}, fonts.regular, styles.text],
|
|
144
|
+
children: children
|
|
145
|
+
})]
|
|
91
146
|
})
|
|
92
147
|
});
|
|
93
148
|
}
|
|
149
|
+
function renderIcon(icon, color, size) {
|
|
150
|
+
if (!icon) {
|
|
151
|
+
return null;
|
|
152
|
+
}
|
|
153
|
+
const iconValue = typeof icon === 'function' ? icon({
|
|
154
|
+
color,
|
|
155
|
+
size
|
|
156
|
+
}) : icon;
|
|
157
|
+
if (/*#__PURE__*/React.isValidElement(iconValue)) {
|
|
158
|
+
return iconValue;
|
|
159
|
+
}
|
|
160
|
+
if (typeof iconValue === 'object' && iconValue != null && 'type' in iconValue) {
|
|
161
|
+
return /*#__PURE__*/_jsx(PlatformIcon, {
|
|
162
|
+
icon: iconValue,
|
|
163
|
+
size: size,
|
|
164
|
+
color: color
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
return null;
|
|
168
|
+
}
|
|
94
169
|
const styles = StyleSheet.create({
|
|
95
170
|
button: {
|
|
96
171
|
paddingHorizontal: 24,
|
|
97
172
|
paddingVertical: 10,
|
|
98
173
|
borderRadius: BUTTON_RADIUS,
|
|
99
|
-
borderCurve: 'continuous'
|
|
174
|
+
borderCurve: 'continuous',
|
|
175
|
+
overflow: 'hidden'
|
|
176
|
+
},
|
|
177
|
+
content: {
|
|
178
|
+
flexDirection: 'row',
|
|
179
|
+
alignItems: 'center',
|
|
180
|
+
justifyContent: 'center',
|
|
181
|
+
gap: 8
|
|
182
|
+
},
|
|
183
|
+
icon: {
|
|
184
|
+
marginLeft: -6
|
|
100
185
|
},
|
|
101
186
|
text: {
|
|
102
187
|
fontSize: 14,
|
package/lib/module/Button.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useLinkProps","useTheme","React","Platform","StyleSheet","Color","PlatformPressable","Text","jsx","_jsx","BUTTON_RADIUS","Button","props","ButtonLink","ButtonBase","screen","params","action","href","rest","variant","color","customColor","android_ripple","style","children","dark","colors","fonts","primary","backgroundColor","textColor","fade","string","
|
|
1
|
+
{"version":3,"names":["useLinkProps","useTheme","React","ActivityIndicator","Platform","StyleSheet","View","Color","PlatformIcon","PlatformPressable","Text","jsx","_jsx","jsxs","_jsxs","BUTTON_RADIUS","ICON_SIZE","Button","props","ButtonLink","ButtonBase","in","parent","screen","params","action","href","onPress","rest","isPending","startTransition","useTransition","isPendingDeferred","useDeferredValue","loading","e","variant","color","customColor","icon","android_ripple","disabled","style","children","dark","colors","fonts","primary","backgroundColor","textColor","fade","string","foreground","rippleColor","iconNode","size","renderIcon","undefined","pressOpacity","OS","hoverEffect","styles","button","content","regular","text","iconValue","isValidElement","create","paddingHorizontal","paddingVertical","borderRadius","borderCurve","overflow","flexDirection","alignItems","justifyContent","gap","marginLeft","fontSize","lineHeight","letterSpacing","textAlign"],"sourceRoot":"../../src","sources":["Button.tsx"],"mappings":"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","ignoreList":[]}
|