ferns-ui 0.31.0 → 0.32.1
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/dist/Toast.d.ts +2 -0
- package/dist/Toast.js +7 -3
- package/dist/Toast.js.map +1 -1
- package/dist/Tooltip.js +5 -4
- package/dist/Tooltip.js.map +1 -1
- package/package.json +1 -1
- package/src/Toast.tsx +18 -2
- package/src/Tooltip.tsx +9 -5
package/dist/Toast.d.ts
CHANGED
package/dist/Toast.js
CHANGED
|
@@ -4,6 +4,7 @@ import { useToast as useRNToast } from "react-native-toast-notifications";
|
|
|
4
4
|
import { Box } from "./Box";
|
|
5
5
|
import { Button } from "./Button";
|
|
6
6
|
import { Icon } from "./Icon";
|
|
7
|
+
import { IconButton } from "./IconButton";
|
|
7
8
|
import { Text } from "./Text";
|
|
8
9
|
const TOAST_DURATION_MS = 3 * 1000;
|
|
9
10
|
export function useToast() {
|
|
@@ -12,7 +13,8 @@ export function useToast() {
|
|
|
12
13
|
show: (text, options) => {
|
|
13
14
|
return toast.show(text, {
|
|
14
15
|
data: options,
|
|
15
|
-
duration
|
|
16
|
+
// a duration of 0 keeps the toast up infinitely until hidden
|
|
17
|
+
duration: (options === null || options === void 0 ? void 0 : options.persistent) ? 0 : TOAST_DURATION_MS,
|
|
16
18
|
});
|
|
17
19
|
},
|
|
18
20
|
hide: (id) => toast.hide(id),
|
|
@@ -21,7 +23,7 @@ export function useToast() {
|
|
|
21
23
|
export function Toast({ message, data, }) {
|
|
22
24
|
// margin 8 on either side, times the standard 4px we multiply by.
|
|
23
25
|
const width = Math.min(Dimensions.get("window").width - 16 * 4, 712);
|
|
24
|
-
const { variant, buttonText, buttonOnClick } = data !== null && data !== void 0 ? data : {};
|
|
26
|
+
const { variant, buttonText, buttonOnClick, persistent, onDismiss } = data !== null && data !== void 0 ? data : {};
|
|
25
27
|
let color = "darkGray";
|
|
26
28
|
if (variant === "warning") {
|
|
27
29
|
color = "orange";
|
|
@@ -37,6 +39,8 @@ export function Toast({ message, data, }) {
|
|
|
37
39
|
React.createElement(Box, { alignItems: "center", direction: "column", flex: "shrink", justifyContent: "center" },
|
|
38
40
|
React.createElement(Text, { color: "white", size: "lg", weight: "bold" }, message)),
|
|
39
41
|
Boolean(buttonOnClick && buttonText) && (React.createElement(Box, { alignItems: "center", justifyContent: "center", marginLeft: 4 },
|
|
40
|
-
React.createElement(Button, { color: "lightGray", shape: "pill", text: buttonText, onClick: buttonOnClick })))
|
|
42
|
+
React.createElement(Button, { color: "lightGray", shape: "pill", text: buttonText, onClick: buttonOnClick }))),
|
|
43
|
+
Boolean(onDismiss && persistent) && (React.createElement(Box, { alignItems: "center", justifyContent: "center", marginLeft: 4 },
|
|
44
|
+
React.createElement(IconButton, { accessibilityLabel: "Dismiss notification", icon: "times", iconColor: "white", onClick: onDismiss })))));
|
|
41
45
|
}
|
|
42
46
|
//# sourceMappingURL=Toast.js.map
|
package/dist/Toast.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toast.js","sourceRoot":"","sources":["../src/Toast.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AACxC,OAAO,EAAC,QAAQ,IAAI,UAAU,EAAC,MAAM,kCAAkC,CAAC;AAExE,OAAO,EAAC,GAAG,EAAC,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;AAEhC,OAAO,EAAC,IAAI,EAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAC,IAAI,EAAC,MAAM,QAAQ,CAAC;AAE5B,MAAM,iBAAiB,GAAG,CAAC,GAAG,IAAI,CAAC;AAEnC,MAAM,UAAU,QAAQ;IACtB,MAAM,KAAK,GAAG,UAAU,EAAE,CAAC;IAC3B,OAAO;QACL,IAAI,EAAE,CACJ,IAAY,EACZ,
|
|
1
|
+
{"version":3,"file":"Toast.js","sourceRoot":"","sources":["../src/Toast.tsx"],"names":[],"mappings":"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"}
|
package/dist/Tooltip.js
CHANGED
|
@@ -16,7 +16,7 @@ const overflowRight = (x) => {
|
|
|
16
16
|
};
|
|
17
17
|
const getTooltipPosition = ({ children, tooltip, measured, idealDirection, }) => {
|
|
18
18
|
if (!measured) {
|
|
19
|
-
console.debug("No measurements for child yet, cannot show tooltip.");
|
|
19
|
+
console.debug("No measurements for child yet, cannot show tooltip yet.");
|
|
20
20
|
return {};
|
|
21
21
|
}
|
|
22
22
|
const { pageY: childrenY, height: childrenHeight, pageX: childrenX, width: childrenWidth, } = children;
|
|
@@ -102,6 +102,9 @@ export const Tooltip = forwardRef((props, _ref) => {
|
|
|
102
102
|
console.error("Tooltip: childrenWrapperRef does not have a measure method.");
|
|
103
103
|
return;
|
|
104
104
|
}
|
|
105
|
+
else if (!(childrenWrapperRef === null || childrenWrapperRef === void 0 ? void 0 : childrenWrapperRef.current)) {
|
|
106
|
+
console.error("Tooltip: childrenWrapperRef is null.");
|
|
107
|
+
}
|
|
105
108
|
(_b = childrenWrapperRef === null || childrenWrapperRef === void 0 ? void 0 : childrenWrapperRef.current) === null || _b === void 0 ? void 0 : _b.measure((_x, _y, width, height, pageX, pageY) => {
|
|
106
109
|
setMeasurement({
|
|
107
110
|
children: { pageX, pageY, height, width },
|
|
@@ -167,8 +170,6 @@ export const Tooltip = forwardRef((props, _ref) => {
|
|
|
167
170
|
setVisible(false);
|
|
168
171
|
} },
|
|
169
172
|
React.createElement(Text, { color: "white" }, text)))),
|
|
170
|
-
React.createElement(Pressable, Object.assign({ onTouchStart: handleTouchStart }, (isWeb ? webPressProps : mobilePressProps)),
|
|
171
|
-
ref: childrenWrapperRef,
|
|
172
|
-
}))));
|
|
173
|
+
React.createElement(Pressable, Object.assign({ ref: childrenWrapperRef, onTouchStart: handleTouchStart }, (isWeb ? webPressProps : mobilePressProps)), children)));
|
|
173
174
|
});
|
|
174
175
|
//# sourceMappingURL=Tooltip.js.map
|
package/dist/Tooltip.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tooltip.js","sourceRoot":"","sources":["../src/Tooltip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAC,UAAU,EAAC,MAAM,OAAO,CAAC;AACjC,OAAO,EACL,UAAU,EAGV,QAAQ,EACR,SAAS,GAEV,MAAM,cAAc,CAAC;AACtB,OAAO,EAAC,MAAM,EAAC,MAAM,wBAAwB,CAAC;AAG9C,OAAO,EAAC,IAAI,EAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAElC,MAAM,cAAc,GAAG,CAAC,CAAC;AACzB,0EAA0E;AAC1E,MAAM,wBAAwB,GAAG,EAAE,CAAC;AAgBpC,MAAM,YAAY,GAAG,CAAC,CAAS,EAAW,EAAE;IAC1C,OAAO,CAAC,GAAG,wBAAwB,CAAC;AACtC,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,CAAS,EAAW,EAAE;IAC3C,MAAM,EAAC,KAAK,EAAE,WAAW,EAAC,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,wBAAwB,GAAG,WAAW,CAAC;AACpD,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,EAC1B,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,cAAc,GACF,EAAoC,EAAE;IAClD,IAAI,CAAC,QAAQ,EAAE;QACb,OAAO,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"Tooltip.js","sourceRoot":"","sources":["../src/Tooltip.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/Toast.tsx
CHANGED
|
@@ -6,6 +6,7 @@ import {Box} from "./Box";
|
|
|
6
6
|
import {Button} from "./Button";
|
|
7
7
|
import {AllColors} from "./Common";
|
|
8
8
|
import {Icon} from "./Icon";
|
|
9
|
+
import {IconButton} from "./IconButton";
|
|
9
10
|
import {Text} from "./Text";
|
|
10
11
|
|
|
11
12
|
const TOAST_DURATION_MS = 3 * 1000;
|
|
@@ -19,11 +20,14 @@ export function useToast(): any {
|
|
|
19
20
|
variant?: "default" | "warning" | "error";
|
|
20
21
|
buttonText?: string;
|
|
21
22
|
buttonOnClick: () => void | Promise<void>;
|
|
23
|
+
persistent?: boolean;
|
|
24
|
+
onDismiss?: () => void | Promise<void>;
|
|
22
25
|
}
|
|
23
26
|
): string => {
|
|
24
27
|
return toast.show(text, {
|
|
25
28
|
data: options,
|
|
26
|
-
duration
|
|
29
|
+
// a duration of 0 keeps the toast up infinitely until hidden
|
|
30
|
+
duration: options?.persistent ? 0 : TOAST_DURATION_MS,
|
|
27
31
|
});
|
|
28
32
|
},
|
|
29
33
|
hide: (id: string) => toast.hide(id),
|
|
@@ -39,11 +43,13 @@ export function Toast({
|
|
|
39
43
|
variant?: "default" | "warning" | "error";
|
|
40
44
|
buttonText?: string;
|
|
41
45
|
buttonOnClick?: () => void | Promise<void>;
|
|
46
|
+
persistent?: boolean;
|
|
47
|
+
onDismiss?: () => void;
|
|
42
48
|
};
|
|
43
49
|
}): React.ReactElement {
|
|
44
50
|
// margin 8 on either side, times the standard 4px we multiply by.
|
|
45
51
|
const width = Math.min(Dimensions.get("window").width - 16 * 4, 712);
|
|
46
|
-
const {variant, buttonText, buttonOnClick} = data ?? {};
|
|
52
|
+
const {variant, buttonText, buttonOnClick, persistent, onDismiss} = data ?? {};
|
|
47
53
|
let color: AllColors = "darkGray";
|
|
48
54
|
if (variant === "warning") {
|
|
49
55
|
color = "orange";
|
|
@@ -85,6 +91,16 @@ export function Toast({
|
|
|
85
91
|
<Button color="lightGray" shape="pill" text={buttonText!} onClick={buttonOnClick} />
|
|
86
92
|
</Box>
|
|
87
93
|
)}
|
|
94
|
+
{Boolean(onDismiss && persistent) && (
|
|
95
|
+
<Box alignItems="center" justifyContent="center" marginLeft={4}>
|
|
96
|
+
<IconButton
|
|
97
|
+
accessibilityLabel="Dismiss notification"
|
|
98
|
+
icon="times"
|
|
99
|
+
iconColor="white"
|
|
100
|
+
onClick={onDismiss!}
|
|
101
|
+
/>
|
|
102
|
+
</Box>
|
|
103
|
+
)}
|
|
88
104
|
</Box>
|
|
89
105
|
);
|
|
90
106
|
}
|
package/src/Tooltip.tsx
CHANGED
|
@@ -48,7 +48,7 @@ const getTooltipPosition = ({
|
|
|
48
48
|
idealDirection,
|
|
49
49
|
}: Measurement): {} | {left: number; top: number} => {
|
|
50
50
|
if (!measured) {
|
|
51
|
-
console.debug("No measurements for child yet, cannot show tooltip.");
|
|
51
|
+
console.debug("No measurements for child yet, cannot show tooltip yet.");
|
|
52
52
|
return {};
|
|
53
53
|
}
|
|
54
54
|
|
|
@@ -160,6 +160,8 @@ export const Tooltip = forwardRef((props: TooltipProps, _ref: any) => {
|
|
|
160
160
|
if (childrenWrapperRef?.current && !childrenWrapperRef?.current?.measure) {
|
|
161
161
|
console.error("Tooltip: childrenWrapperRef does not have a measure method.");
|
|
162
162
|
return;
|
|
163
|
+
} else if (!childrenWrapperRef?.current) {
|
|
164
|
+
console.error("Tooltip: childrenWrapperRef is null.");
|
|
163
165
|
}
|
|
164
166
|
childrenWrapperRef?.current?.measure((_x, _y, width, height, pageX, pageY) => {
|
|
165
167
|
setMeasurement({
|
|
@@ -253,10 +255,12 @@ export const Tooltip = forwardRef((props: TooltipProps, _ref: any) => {
|
|
|
253
255
|
</Pressable>
|
|
254
256
|
</Portal>
|
|
255
257
|
)}
|
|
256
|
-
<Pressable
|
|
257
|
-
{
|
|
258
|
-
|
|
259
|
-
|
|
258
|
+
<Pressable
|
|
259
|
+
ref={childrenWrapperRef}
|
|
260
|
+
onTouchStart={handleTouchStart}
|
|
261
|
+
{...(isWeb ? webPressProps : mobilePressProps)}
|
|
262
|
+
>
|
|
263
|
+
{children}
|
|
260
264
|
</Pressable>
|
|
261
265
|
</>
|
|
262
266
|
);
|