react-native-terra-ui 0.10.0 → 0.10.2
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/CHANGELOG.md +13 -0
- package/lib/module/components/button/Button.js +21 -13
- package/lib/module/components/button/Button.js.map +1 -1
- package/lib/module/components/button/index.js.map +1 -1
- package/lib/module/components/divider/Divider.js +127 -0
- package/lib/module/components/divider/Divider.js.map +1 -0
- package/lib/module/components/divider/index.js +4 -0
- package/lib/module/components/divider/index.js.map +1 -0
- package/lib/module/components/index.js +2 -0
- package/lib/module/components/index.js.map +1 -1
- package/lib/module/components/pressable/index.js +4 -0
- package/lib/module/components/pressable/index.js.map +1 -0
- package/lib/module/components/pressable/variants/PressableScale/index.js +110 -0
- package/lib/module/components/pressable/variants/PressableScale/index.js.map +1 -0
- package/lib/module/components/toast/ToastProvider.js +9 -236
- package/lib/module/components/toast/ToastProvider.js.map +1 -1
- package/lib/module/components/toast/hooks/use-toast-manager.js +96 -0
- package/lib/module/components/toast/hooks/use-toast-manager.js.map +1 -0
- package/lib/module/components/toast/parts/ToastAnimatedItem.js +34 -50
- package/lib/module/components/toast/parts/ToastAnimatedItem.js.map +1 -1
- package/lib/module/components/toast/parts/ToastOverlay.ios.js +36 -0
- package/lib/module/components/toast/parts/ToastOverlay.ios.js.map +1 -0
- package/lib/module/components/toast/parts/ToastOverlay.js +34 -0
- package/lib/module/components/toast/parts/ToastOverlay.js.map +1 -0
- package/lib/module/components/toast/parts/ToastViewport.js +91 -0
- package/lib/module/components/toast/parts/ToastViewport.js.map +1 -0
- package/lib/typescript/src/components/button/Button.d.ts +7 -0
- package/lib/typescript/src/components/button/Button.d.ts.map +1 -1
- package/lib/typescript/src/components/button/index.d.ts +1 -1
- package/lib/typescript/src/components/button/index.d.ts.map +1 -1
- package/lib/typescript/src/components/divider/Divider.d.ts +49 -0
- package/lib/typescript/src/components/divider/Divider.d.ts.map +1 -0
- package/lib/typescript/src/components/divider/index.d.ts +3 -0
- package/lib/typescript/src/components/divider/index.d.ts.map +1 -0
- package/lib/typescript/src/components/index.d.ts +2 -0
- package/lib/typescript/src/components/index.d.ts.map +1 -1
- package/lib/typescript/src/components/pressable/index.d.ts +3 -0
- package/lib/typescript/src/components/pressable/index.d.ts.map +1 -0
- package/lib/typescript/src/components/pressable/variants/PressableScale/index.d.ts +47 -0
- package/lib/typescript/src/components/pressable/variants/PressableScale/index.d.ts.map +1 -0
- package/lib/typescript/src/components/toast/ToastProvider.d.ts.map +1 -1
- package/lib/typescript/src/components/toast/hooks/use-toast-manager.d.ts +6 -0
- package/lib/typescript/src/components/toast/hooks/use-toast-manager.d.ts.map +1 -0
- package/lib/typescript/src/components/toast/parts/ToastAnimatedItem.d.ts +3 -2
- package/lib/typescript/src/components/toast/parts/ToastAnimatedItem.d.ts.map +1 -1
- package/lib/typescript/src/components/toast/parts/ToastOverlay.d.ts +28 -0
- package/lib/typescript/src/components/toast/parts/ToastOverlay.d.ts.map +1 -0
- package/lib/typescript/src/components/toast/parts/ToastOverlay.ios.d.ts +28 -0
- package/lib/typescript/src/components/toast/parts/ToastOverlay.ios.d.ts.map +1 -0
- package/lib/typescript/src/components/toast/parts/ToastViewport.d.ts +11 -0
- package/lib/typescript/src/components/toast/parts/ToastViewport.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/components/button/Button.tsx +32 -13
- package/src/components/button/index.ts +1 -0
- package/src/components/divider/Divider.tsx +164 -0
- package/src/components/divider/index.ts +7 -0
- package/src/components/index.ts +2 -0
- package/src/components/pressable/index.ts +5 -0
- package/src/components/pressable/variants/PressableScale/index.tsx +166 -0
- package/src/components/toast/ToastProvider.tsx +7 -288
- package/src/components/toast/hooks/use-toast-manager.tsx +114 -0
- package/src/components/toast/parts/ToastAnimatedItem.tsx +32 -50
- package/src/components/toast/parts/ToastOverlay.ios.tsx +30 -0
- package/src/components/toast/parts/ToastOverlay.tsx +28 -0
- package/src/components/toast/parts/ToastViewport.tsx +104 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.10.2](https://github.com/earthlin9/react-native-terra-ui/compare/v0.10.1...v0.10.2) (2026-09-11)
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
|
|
7
|
+
* **ui:** [button] add PressableScale and a Button animation prop ([#22](https://github.com/earthlin9/react-native-terra-ui/issues/22)) ([ff91d4f](https://github.com/earthlin9/react-native-terra-ui/commit/ff91d4f9f1d68ea68c779b647f2320dab49516fe))
|
|
8
|
+
* **ui:** [divider] add Divider ([#23](https://github.com/earthlin9/react-native-terra-ui/issues/23)) ([132c83b](https://github.com/earthlin9/react-native-terra-ui/commit/132c83bcb134bdfb552f4f0070805ab7efdf7e45))
|
|
9
|
+
|
|
10
|
+
## [0.10.1](https://github.com/earthlin9/react-native-terra-ui/compare/v0.10.0...v0.10.1) (2026-09-10)
|
|
11
|
+
|
|
12
|
+
### Bug Fixes
|
|
13
|
+
|
|
14
|
+
* **ui:** [toast] host the viewport in a full-window overlay on iOS ([#21](https://github.com/earthlin9/react-native-terra-ui/issues/21)) ([490b427](https://github.com/earthlin9/react-native-terra-ui/commit/490b427b76c0dd788fa1931b861a84d8f9f07843))
|
|
15
|
+
|
|
3
16
|
## [0.10.0](https://github.com/earthlin9/react-native-terra-ui/compare/v0.9.1...v0.10.0) (2026-09-08)
|
|
4
17
|
|
|
5
18
|
### ⚠ BREAKING CHANGES
|
|
@@ -1,17 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { Pressable } from "react-native-unistyles/components/native/Pressable";
|
|
4
3
|
import { Children, createContext, forwardRef, useContext } from "react";
|
|
5
4
|
import { StyleSheet, useUnistyles } from "react-native-unistyles";
|
|
6
5
|
import { getDefaultRadius } from "../../theme/registry.js";
|
|
7
6
|
import { readableOn } from "../../utils/color-utils.js";
|
|
8
7
|
import { resolveThemeColor } from "../../utils/resolve-theme-color.js";
|
|
9
8
|
import { Icon } from "../icon/index.js";
|
|
9
|
+
import { PressableScale } from "../pressable/index.js";
|
|
10
10
|
import { Spinner } from "../spinner/index.js";
|
|
11
11
|
import { Text } from "../text/index.js";
|
|
12
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
|
+
/** Matches pressto's `minScale` default — enough to feel, not enough to distract. */
|
|
14
|
+
const PRESSED_SCALE = 0.96;
|
|
12
15
|
|
|
13
16
|
// ─── Context (lets icons/labels read the resolved foreground + size) ───────────
|
|
14
|
-
|
|
17
|
+
|
|
15
18
|
const ButtonContext = /*#__PURE__*/createContext({
|
|
16
19
|
color: "",
|
|
17
20
|
size: "md"
|
|
@@ -147,6 +150,7 @@ const ButtonRoot = /*#__PURE__*/forwardRef(function Button({
|
|
|
147
150
|
isIconOnly = false,
|
|
148
151
|
fullWidth = true,
|
|
149
152
|
compact = false,
|
|
153
|
+
animation = "scale",
|
|
150
154
|
background,
|
|
151
155
|
children,
|
|
152
156
|
onPress,
|
|
@@ -177,30 +181,34 @@ const ButtonRoot = /*#__PURE__*/forwardRef(function Button({
|
|
|
177
181
|
style: externalStyle,
|
|
178
182
|
...pressableRest
|
|
179
183
|
} = rest;
|
|
184
|
+
const ownStyles = [styles.base, {
|
|
185
|
+
backgroundColor: bg,
|
|
186
|
+
borderColor: border,
|
|
187
|
+
borderWidth
|
|
188
|
+
}, compact ? styles.compact : null, isDisabled ? {
|
|
189
|
+
opacity: theme.opacity.disabled
|
|
190
|
+
} : null];
|
|
191
|
+
// Only the function form forces a re-render per touch, so keep the array form
|
|
192
|
+
// whenever the caller's style doesn't need the pressed state.
|
|
193
|
+
const style = typeof externalStyle === "function" ? state => [...ownStyles, externalStyle(state)] : [...ownStyles, externalStyle];
|
|
180
194
|
return /*#__PURE__*/_jsx(ButtonContext.Provider, {
|
|
181
195
|
value: {
|
|
182
196
|
color: fg,
|
|
183
197
|
size
|
|
184
198
|
},
|
|
185
|
-
children: /*#__PURE__*/_jsxs(
|
|
199
|
+
children: /*#__PURE__*/_jsxs(PressableScale, {
|
|
186
200
|
ref: ref,
|
|
187
201
|
onPress: blocked ? undefined : onPress,
|
|
188
|
-
|
|
202
|
+
isDisabled: blocked,
|
|
203
|
+
minScale: animation === "scale" ? PRESSED_SCALE : 1,
|
|
204
|
+
pressedOpacity: animation === "opacity" ? theme.opacity.pressed : undefined,
|
|
189
205
|
accessibilityRole: "button",
|
|
190
206
|
accessibilityState: {
|
|
191
207
|
disabled: blocked,
|
|
192
208
|
busy: isLoading
|
|
193
209
|
},
|
|
194
210
|
...pressableRest,
|
|
195
|
-
style:
|
|
196
|
-
backgroundColor: bg,
|
|
197
|
-
borderColor: border,
|
|
198
|
-
borderWidth
|
|
199
|
-
}, compact ? styles.compact : null, state.pressed && !blocked ? {
|
|
200
|
-
opacity: theme.opacity.pressed
|
|
201
|
-
} : null, isDisabled ? {
|
|
202
|
-
opacity: theme.opacity.disabled
|
|
203
|
-
} : null, typeof externalStyle === "function" ? externalStyle(state) : externalStyle],
|
|
211
|
+
style: style,
|
|
204
212
|
children: [isLoading && /*#__PURE__*/_jsx(Spinner, {
|
|
205
213
|
size: "sm",
|
|
206
214
|
color: fg
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Children","createContext","forwardRef","useContext","StyleSheet","useUnistyles","getDefaultRadius","readableOn","resolveThemeColor","Icon","Spinner","Text","jsx","_jsx","jsxs","_jsxs","ButtonContext","color","size","useButtonContext","getColors","variant","theme","c","get","key","bg","border","borderWidth","fg","LABEL_TYPOGRAPHY","sm","weight","md","lg","ButtonLabel","children","typography","style","ICON_SIZE","ButtonIcon","name","sizeProp","colorProp","strokeWidth","renderChildren","map","child","trim","length","ButtonRoot","Button","radius","isDisabled","isLoading","isIconOnly","fullWidth","compact","background","onPress","rest","ref","_styles","styles","useVariants","iconOnly","variantBg","variantFg","resolvedBackground","undefined","blocked","externalStyle","pressableRest","
|
|
1
|
+
{"version":3,"names":["Children","createContext","forwardRef","useContext","StyleSheet","useUnistyles","getDefaultRadius","readableOn","resolveThemeColor","Icon","PressableScale","Spinner","Text","jsx","_jsx","jsxs","_jsxs","PRESSED_SCALE","ButtonContext","color","size","useButtonContext","getColors","variant","theme","c","get","key","bg","border","borderWidth","fg","LABEL_TYPOGRAPHY","sm","weight","md","lg","ButtonLabel","children","typography","style","ICON_SIZE","ButtonIcon","name","sizeProp","colorProp","strokeWidth","renderChildren","map","child","trim","length","ButtonRoot","Button","radius","isDisabled","isLoading","isIconOnly","fullWidth","compact","animation","background","onPress","rest","ref","_styles","styles","useVariants","iconOnly","variantBg","variantFg","resolvedBackground","undefined","blocked","externalStyle","pressableRest","ownStyles","base","backgroundColor","borderColor","opacity","disabled","state","Provider","value","minScale","pressedOpacity","pressed","accessibilityRole","accessibilityState","busy","Label","create","flexDirection","alignItems","justifyContent","alignSelf","variants","height","paddingHorizontal","gap","none","borderRadius","xl","full","true","false","aspectRatio","uni__dependencies","paddingVertical"],"sourceRoot":"../../../../src","sources":["components/button/Button.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Button","useButtonContext"],"sourceRoot":"../../../../src","sources":["components/button/index.ts"],"mappings":";;
|
|
1
|
+
{"version":3,"names":["Button","useButtonContext"],"sourceRoot":"../../../../src","sources":["components/button/index.ts"],"mappings":";;AAQA,SAASA,MAAM,EAAEC,gBAAgB","ignoreList":[]}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { View } from "react-native-unistyles/components/native/View";
|
|
4
|
+
import { Children, forwardRef } from "react";
|
|
5
|
+
import { StyleSheet as RNStyleSheet } from "react-native";
|
|
6
|
+
import { StyleSheet, useUnistyles } from "react-native-unistyles";
|
|
7
|
+
import { resolveThemeColor } from "../../utils/resolve-theme-color.js";
|
|
8
|
+
import { Text } from "../text/index.js";
|
|
9
|
+
|
|
10
|
+
/** `number | 'hairline'`, mirroring `Box`'s `borderWidth`. */
|
|
11
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
12
|
+
function resolveThickness(thickness) {
|
|
13
|
+
return thickness === "hairline" ? RNStyleSheet.hairlineWidth : thickness;
|
|
14
|
+
}
|
|
15
|
+
function renderLabel(children) {
|
|
16
|
+
return Children.map(children, child => {
|
|
17
|
+
if (typeof child === "string") {
|
|
18
|
+
return child.trim().length > 0 ? /*#__PURE__*/_jsx(Text, {
|
|
19
|
+
variant: "label-sm",
|
|
20
|
+
color: "text.secondary",
|
|
21
|
+
children: child
|
|
22
|
+
}) : null;
|
|
23
|
+
}
|
|
24
|
+
if (typeof child === "number") {
|
|
25
|
+
return /*#__PURE__*/_jsx(Text, {
|
|
26
|
+
variant: "label-sm",
|
|
27
|
+
color: "text.secondary",
|
|
28
|
+
children: child
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
return child;
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* A rule that separates content.
|
|
37
|
+
*
|
|
38
|
+
* Decorative by default — screen readers skip it, because the separation it
|
|
39
|
+
* expresses is already carried by the content either side. A labelled divider
|
|
40
|
+
* keeps its label readable.
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* <Divider />
|
|
44
|
+
* <Divider spacing="4" />
|
|
45
|
+
* <Divider orientation="vertical" />
|
|
46
|
+
* <Divider>OR</Divider>
|
|
47
|
+
*/
|
|
48
|
+
export const Divider = /*#__PURE__*/forwardRef(function Divider({
|
|
49
|
+
orientation = "horizontal",
|
|
50
|
+
color = "border.default",
|
|
51
|
+
thickness = "hairline",
|
|
52
|
+
spacing,
|
|
53
|
+
labelAlign = "center",
|
|
54
|
+
children,
|
|
55
|
+
style,
|
|
56
|
+
...rest
|
|
57
|
+
}, ref) {
|
|
58
|
+
const {
|
|
59
|
+
theme
|
|
60
|
+
} = useUnistyles();
|
|
61
|
+
const isVertical = orientation === "vertical";
|
|
62
|
+
// A vertical rule has no room to run either side of a label, so children are
|
|
63
|
+
// dropped rather than silently laid out in a direction they were not written for.
|
|
64
|
+
const label = isVertical ? null : renderLabel(children);
|
|
65
|
+
const hasLabel = Children.count(label) > 0;
|
|
66
|
+
const lineColor = resolveThemeColor(color, theme);
|
|
67
|
+
const weight = resolveThickness(thickness);
|
|
68
|
+
const margin = spacing !== undefined ? theme.spacing[spacing] : undefined;
|
|
69
|
+
const line = {
|
|
70
|
+
backgroundColor: lineColor,
|
|
71
|
+
...(isVertical ? {
|
|
72
|
+
width: weight
|
|
73
|
+
} : {
|
|
74
|
+
height: weight
|
|
75
|
+
})
|
|
76
|
+
};
|
|
77
|
+
if (!hasLabel) {
|
|
78
|
+
return /*#__PURE__*/_jsx(View, {
|
|
79
|
+
ref: ref,
|
|
80
|
+
accessibilityElementsHidden: true,
|
|
81
|
+
importantForAccessibility: "no-hide-descendants",
|
|
82
|
+
"aria-hidden": true,
|
|
83
|
+
...rest,
|
|
84
|
+
style: [styles.rule, line, margin !== undefined ? isVertical ? {
|
|
85
|
+
marginHorizontal: margin
|
|
86
|
+
} : {
|
|
87
|
+
marginVertical: margin
|
|
88
|
+
} : null, style]
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
// The label stays readable, so the wrapper is not hidden from accessibility —
|
|
93
|
+
// only the two rule segments are, and each is a bare decorative View.
|
|
94
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
95
|
+
ref: ref,
|
|
96
|
+
...rest,
|
|
97
|
+
style: [styles.labelledRoot, margin !== undefined ? {
|
|
98
|
+
marginVertical: margin
|
|
99
|
+
} : null, style],
|
|
100
|
+
children: [labelAlign !== "start" && /*#__PURE__*/_jsx(View, {
|
|
101
|
+
style: [styles.labelledSegment, line]
|
|
102
|
+
}), label, labelAlign !== "end" && /*#__PURE__*/_jsx(View, {
|
|
103
|
+
style: [styles.labelledSegment, line]
|
|
104
|
+
})]
|
|
105
|
+
});
|
|
106
|
+
});
|
|
107
|
+
|
|
108
|
+
// ─── Styles ───────────────────────────────────────────────────────────────────
|
|
109
|
+
|
|
110
|
+
const styles = StyleSheet.create(theme => ({
|
|
111
|
+
// Stretches across its parent's cross axis: full width in a column, full
|
|
112
|
+
// height in a row. The `line` style supplies the other dimension.
|
|
113
|
+
rule: {
|
|
114
|
+
alignSelf: "stretch"
|
|
115
|
+
},
|
|
116
|
+
labelledRoot: {
|
|
117
|
+
alignSelf: "stretch",
|
|
118
|
+
flexDirection: "row",
|
|
119
|
+
alignItems: "center",
|
|
120
|
+
gap: theme.spacing["3"],
|
|
121
|
+
uni__dependencies: [0]
|
|
122
|
+
},
|
|
123
|
+
labelledSegment: {
|
|
124
|
+
flex: 1
|
|
125
|
+
}
|
|
126
|
+
}));
|
|
127
|
+
//# sourceMappingURL=Divider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Children","forwardRef","StyleSheet","RNStyleSheet","useUnistyles","resolveThemeColor","Text","jsx","_jsx","jsxs","_jsxs","resolveThickness","thickness","hairlineWidth","renderLabel","children","map","child","trim","length","variant","color","Divider","orientation","spacing","labelAlign","style","rest","ref","theme","isVertical","label","hasLabel","count","lineColor","weight","margin","undefined","line","backgroundColor","width","height","View","accessibilityElementsHidden","importantForAccessibility","styles","rule","marginHorizontal","marginVertical","labelledRoot","labelledSegment","create","alignSelf","flexDirection","alignItems","gap","uni__dependencies","flex"],"sourceRoot":"../../../../src","sources":["components/divider/Divider.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Divider"],"sourceRoot":"../../../../src","sources":["components/divider/index.ts"],"mappings":";;AAMA,SAASA,OAAO","ignoreList":[]}
|
|
@@ -4,12 +4,14 @@ export * from "./avatar/index.js";
|
|
|
4
4
|
export * from "./box/index.js";
|
|
5
5
|
export * from "./button/index.js";
|
|
6
6
|
export * from "./chip/index.js";
|
|
7
|
+
export * from "./divider/index.js";
|
|
7
8
|
export * from "./empty-state/index.js";
|
|
8
9
|
export * from "./header/index.js";
|
|
9
10
|
export * from "./icon/index.js";
|
|
10
11
|
export * from "./image/index.js";
|
|
11
12
|
export * from "./page-indicator/index.js";
|
|
12
13
|
export * from "./portal/index.js";
|
|
14
|
+
export * from "./pressable/index.js";
|
|
13
15
|
export * from "./screen/index.js";
|
|
14
16
|
export * from "./slot/index.js";
|
|
15
17
|
export * from "./spinner/index.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["components/index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["components/index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["PressableScale"],"sourceRoot":"../../../../src","sources":["components/pressable/index.ts"],"mappings":";;AAIA,SAASA,cAAc","ignoreList":[]}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { Pressable } from "react-native-unistyles/components/native/Pressable";
|
|
4
|
+
import { forwardRef, useCallback, useEffect, useState } from "react";
|
|
5
|
+
import Animated, { Easing, interpolate, useAnimatedStyle, useSharedValue, withSpring, withTiming } from "react-native-reanimated";
|
|
6
|
+
import { StyleSheet } from "react-native-unistyles";
|
|
7
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
|
+
const AnimatedPressable = Animated.createAnimatedComponent(Pressable);
|
|
9
|
+
|
|
10
|
+
/** A 250ms ease that reads as instant on press-in but never snaps back on release. */
|
|
11
|
+
const DEFAULT_TIMING = {
|
|
12
|
+
duration: 250,
|
|
13
|
+
easing: Easing.bezier(0.25, 0.1, 0.25, 1)
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* A `Pressable` that animates a scale (and optionally an opacity) between its
|
|
17
|
+
* resting and pressed states, driven by a single shared `progress` value on the
|
|
18
|
+
* UI thread.
|
|
19
|
+
*
|
|
20
|
+
* Use it anywhere a press deserves physical feedback — cards, list rows, custom
|
|
21
|
+
* controls. `Button` renders one internally via its `animation` prop.
|
|
22
|
+
*/
|
|
23
|
+
export const PressableScale = /*#__PURE__*/forwardRef(function PressableScale({
|
|
24
|
+
baseScale = 1,
|
|
25
|
+
minScale = 0.96,
|
|
26
|
+
pressedOpacity,
|
|
27
|
+
animationConfig,
|
|
28
|
+
isDisabled = false,
|
|
29
|
+
style,
|
|
30
|
+
onPressIn,
|
|
31
|
+
onPressOut,
|
|
32
|
+
...rest
|
|
33
|
+
}, ref) {
|
|
34
|
+
const progress = useSharedValue(0);
|
|
35
|
+
|
|
36
|
+
// Only the function form of `style` needs a re-render to resolve; tracking
|
|
37
|
+
// `pressed` unconditionally would re-render every consumer on every touch.
|
|
38
|
+
const isStyleFunction = typeof style === "function";
|
|
39
|
+
const [pressed, setPressed] = useState(false);
|
|
40
|
+
const animateTo = useCallback(to => {
|
|
41
|
+
if (animationConfig?.type === "spring") {
|
|
42
|
+
progress.value = withSpring(to, animationConfig.config);
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
progress.value = withTiming(to, {
|
|
46
|
+
...DEFAULT_TIMING,
|
|
47
|
+
...animationConfig?.config
|
|
48
|
+
});
|
|
49
|
+
}, [animationConfig, progress]);
|
|
50
|
+
const handlePressIn = useCallback(event => {
|
|
51
|
+
animateTo(1);
|
|
52
|
+
if (isStyleFunction) setPressed(true);
|
|
53
|
+
onPressIn?.(event);
|
|
54
|
+
}, [animateTo, isStyleFunction, onPressIn]);
|
|
55
|
+
const handlePressOut = useCallback(event => {
|
|
56
|
+
animateTo(0);
|
|
57
|
+
if (isStyleFunction) setPressed(false);
|
|
58
|
+
onPressOut?.(event);
|
|
59
|
+
}, [animateTo, isStyleFunction, onPressOut]);
|
|
60
|
+
|
|
61
|
+
// A press that disables its own pressable — `onPress` flipping a button into
|
|
62
|
+
// a loading state — never gets an `onPressOut`, so release it here instead
|
|
63
|
+
// of leaving it stuck at the pressed scale.
|
|
64
|
+
useEffect(() => {
|
|
65
|
+
if (!isDisabled) return;
|
|
66
|
+
animateTo(0);
|
|
67
|
+
setPressed(false);
|
|
68
|
+
}, [isDisabled, animateTo]);
|
|
69
|
+
const animatedStyle = useAnimatedStyle(() => {
|
|
70
|
+
const scale = interpolate(progress.value, [0, 1], [baseScale, minScale]);
|
|
71
|
+
if (pressedOpacity === undefined) {
|
|
72
|
+
return {
|
|
73
|
+
transform: [{
|
|
74
|
+
scale
|
|
75
|
+
}]
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
return {
|
|
79
|
+
transform: [{
|
|
80
|
+
scale
|
|
81
|
+
}],
|
|
82
|
+
opacity: interpolate(progress.value, [0, 1], [1, pressedOpacity])
|
|
83
|
+
};
|
|
84
|
+
});
|
|
85
|
+
const pressableState = {
|
|
86
|
+
pressed
|
|
87
|
+
};
|
|
88
|
+
return /*#__PURE__*/_jsx(AnimatedPressable, {
|
|
89
|
+
ref: ref,
|
|
90
|
+
disabled: isDisabled,
|
|
91
|
+
...rest,
|
|
92
|
+
onPressIn: handlePressIn,
|
|
93
|
+
onPressOut: handlePressOut
|
|
94
|
+
// The animated style goes first so anything the caller sets — a disabled
|
|
95
|
+
// opacity, say — still wins.
|
|
96
|
+
,
|
|
97
|
+
style: [styles.root, animatedStyle, isStyleFunction ? style(pressableState) : style]
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
|
|
101
|
+
// ─── Styles ───────────────────────────────────────────────────────────────────
|
|
102
|
+
//
|
|
103
|
+
// PressableScale has no style of its own — this stylesheet exists so the
|
|
104
|
+
// Unistyles Babel plugin swaps the `Pressable` imported above for its
|
|
105
|
+
// Unistyles-aware counterpart. Without it a themed style handed in through
|
|
106
|
+
// `style` freezes at whichever theme was active when it was created.
|
|
107
|
+
const styles = StyleSheet.create(() => ({
|
|
108
|
+
root: {}
|
|
109
|
+
}));
|
|
110
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["forwardRef","useCallback","useEffect","useState","Animated","Easing","interpolate","useAnimatedStyle","useSharedValue","withSpring","withTiming","StyleSheet","jsx","_jsx","AnimatedPressable","createAnimatedComponent","Pressable","DEFAULT_TIMING","duration","easing","bezier","PressableScale","baseScale","minScale","pressedOpacity","animationConfig","isDisabled","style","onPressIn","onPressOut","rest","ref","progress","isStyleFunction","pressed","setPressed","animateTo","to","type","value","config","handlePressIn","event","handlePressOut","animatedStyle","scale","undefined","transform","opacity","pressableState","disabled","styles","root","create"],"sourceRoot":"../../../../../../src","sources":["components/pressable/variants/PressableScale/index.tsx"],"mappings":"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","ignoreList":[]}
|