@fountain-ui/core 1.11.6 → 1.11.10
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 +32 -0
- package/build/commonjs/Accordion/Accordion.js +24 -24
- package/build/commonjs/Accordion/Accordion.js.map +1 -1
- package/build/commonjs/ButtonBase/ButtonBase.js +1 -1
- package/build/commonjs/ButtonBase/ButtonBase.js.map +1 -1
- package/build/commonjs/CircularProgress/CircularProgress.js +7 -4
- package/build/commonjs/CircularProgress/CircularProgress.js.map +1 -1
- package/build/commonjs/Snackbar/Snackbar.js +3 -1
- package/build/commonjs/Snackbar/Snackbar.js.map +1 -1
- package/build/commonjs/Tab/Tab.js +6 -1
- package/build/commonjs/Tab/Tab.js.map +1 -1
- package/build/module/Accordion/Accordion.js +21 -24
- package/build/module/Accordion/Accordion.js.map +1 -1
- package/build/module/ButtonBase/ButtonBase.js +1 -1
- package/build/module/ButtonBase/ButtonBase.js.map +1 -1
- package/build/module/CircularProgress/CircularProgress.js +5 -5
- package/build/module/CircularProgress/CircularProgress.js.map +1 -1
- package/build/module/Snackbar/Snackbar.js +3 -1
- package/build/module/Snackbar/Snackbar.js.map +1 -1
- package/build/module/Tab/Tab.js +7 -2
- package/build/module/Tab/Tab.js.map +1 -1
- package/package.json +2 -2
- package/src/Accordion/Accordion.tsx +21 -23
- package/src/ButtonBase/ButtonBase.tsx +1 -1
- package/src/CircularProgress/CircularProgress.tsx +6 -13
- package/src/Snackbar/Snackbar.tsx +2 -0
- package/src/Tab/Tab.tsx +6 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,38 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [1.11.10](https://github.com/tappytoon/tappytoon/compare/@fountain-ui/core@1.11.0...@fountain-ui/core@1.11.10) (2021-10-13)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @fountain-ui/core
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## [1.11.9](https://github.com/tappytoon/tappytoon/compare/@fountain-ui/core@1.11.0...@fountain-ui/core@1.11.9) (2021-10-13)
|
|
15
|
+
|
|
16
|
+
**Note:** Version bump only for package @fountain-ui/core
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
## [1.11.8](https://github.com/tappytoon/tappytoon/compare/@fountain-ui/core@1.11.0...@fountain-ui/core@1.11.8) (2021-10-12)
|
|
23
|
+
|
|
24
|
+
**Note:** Version bump only for package @fountain-ui/core
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
## [1.11.7](https://github.com/tappytoon/tappytoon/compare/@fountain-ui/core@1.11.0...@fountain-ui/core@1.11.7) (2021-10-12)
|
|
31
|
+
|
|
32
|
+
**Note:** Version bump only for package @fountain-ui/core
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
6
38
|
## [1.11.6](https://github.com/tappytoon/tappytoon/compare/@fountain-ui/core@1.11.0...@fountain-ui/core@1.11.6) (2021-10-08)
|
|
7
39
|
|
|
8
40
|
**Note:** Version bump only for package @fountain-ui/core
|
|
@@ -7,12 +7,14 @@ exports.default = Accordion;
|
|
|
7
7
|
|
|
8
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
9
|
|
|
10
|
-
var _reactNativeReanimated =
|
|
10
|
+
var _reactNativeReanimated = _interopRequireDefault(require("react-native-reanimated"));
|
|
11
11
|
|
|
12
12
|
var _icons = require("../internal/icons");
|
|
13
13
|
|
|
14
14
|
var _index = require("../index");
|
|
15
15
|
|
|
16
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
|
+
|
|
16
18
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
17
19
|
|
|
18
20
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
@@ -21,6 +23,16 @@ const ANIMATION_OPTION = {
|
|
|
21
23
|
duration: 250
|
|
22
24
|
};
|
|
23
25
|
|
|
26
|
+
const useStyles = function () {
|
|
27
|
+
const theme = (0, _index.useTheme)();
|
|
28
|
+
return {
|
|
29
|
+
root: {
|
|
30
|
+
flexDirection: 'row',
|
|
31
|
+
paddingVertical: theme.spacing(3)
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
|
|
24
36
|
function Accordion(props) {
|
|
25
37
|
const {
|
|
26
38
|
content,
|
|
@@ -29,37 +41,25 @@ function Accordion(props) {
|
|
|
29
41
|
title,
|
|
30
42
|
titleVariant = 'subtitle2'
|
|
31
43
|
} = props;
|
|
32
|
-
const theme = (0, _index.useTheme)();
|
|
33
|
-
|
|
34
|
-
const useStyles = function () {
|
|
35
|
-
return {
|
|
36
|
-
buttonBase: {
|
|
37
|
-
flexDirection: 'row',
|
|
38
|
-
paddingVertical: theme.spacing(3)
|
|
39
|
-
}
|
|
40
|
-
};
|
|
41
|
-
};
|
|
42
|
-
|
|
43
44
|
const styles = useStyles();
|
|
44
45
|
const [isExpanded, setIsExpanded] = (0, _react.useState)(false);
|
|
45
|
-
|
|
46
|
-
const
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
};
|
|
54
|
-
});
|
|
46
|
+
|
|
47
|
+
const rotate = _reactNativeReanimated.default.useSharedValue(0);
|
|
48
|
+
|
|
49
|
+
const animatedChevronDownStyles = _reactNativeReanimated.default.useAnimatedStyle(() => ({
|
|
50
|
+
transform: [{
|
|
51
|
+
rotate: `${rotate.value}deg`
|
|
52
|
+
}]
|
|
53
|
+
}));
|
|
55
54
|
|
|
56
55
|
const onPress = () => {
|
|
57
|
-
setIsExpanded(!
|
|
56
|
+
setIsExpanded(prev => !prev);
|
|
57
|
+
rotate.value = _reactNativeReanimated.default.withTiming(isExpanded ? 180 : 0, ANIMATION_OPTION);
|
|
58
58
|
};
|
|
59
59
|
|
|
60
60
|
return /*#__PURE__*/_react.default.createElement(_index.Column, null, /*#__PURE__*/_react.default.createElement(_index.ButtonBase, {
|
|
61
61
|
onPress: onPress,
|
|
62
|
-
style: styles.
|
|
62
|
+
style: styles.root
|
|
63
63
|
}, LeftIcon ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, LeftIcon, /*#__PURE__*/_react.default.createElement(_index.Spacer, {
|
|
64
64
|
size: 2
|
|
65
65
|
})) : null, /*#__PURE__*/_react.default.createElement(_index.Typography, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Accordion.tsx"],"names":["ANIMATION_OPTION","duration","
|
|
1
|
+
{"version":3,"sources":["Accordion.tsx"],"names":["ANIMATION_OPTION","duration","useStyles","theme","root","flexDirection","paddingVertical","spacing","Accordion","props","content","LeftIcon","RightIcon","title","titleVariant","styles","isExpanded","setIsExpanded","rotate","Animated","useSharedValue","animatedChevronDownStyles","useAnimatedStyle","transform","value","onPress","prev","withTiming","isValidElement"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;AACA;;;;;;;;AAKA,MAAMA,gBAAgB,GAAG;AAAEC,EAAAA,QAAQ,EAAE;AAAZ,CAAzB;;AAEA,MAAMC,SAAqC,GAAG,YAA6B;AACvE,QAAMC,KAAK,GAAG,sBAAd;AAEA,SAAO;AACHC,IAAAA,IAAI,EAAE;AACFC,MAAAA,aAAa,EAAE,KADb;AAEFC,MAAAA,eAAe,EAAEH,KAAK,CAACI,OAAN,CAAc,CAAd;AAFf;AADH,GAAP;AAMH,CATD;;AAWe,SAASC,SAAT,CAAmBC,KAAnB,EAA0C;AACrD,QAAM;AACFC,IAAAA,OADE;AAEFC,IAAAA,QAFE;AAGFC,IAAAA,SAHE;AAIFC,IAAAA,KAJE;AAKFC,IAAAA,YAAY,GAAG;AALb,MAMFL,KANJ;AAQA,QAAMM,MAAM,GAAGb,SAAS,EAAxB;AAEA,QAAM,CAACc,UAAD,EAAaC,aAAb,IAA8B,qBAAS,KAAT,CAApC;;AACA,QAAMC,MAAM,GAAGC,+BAASC,cAAT,CAAwB,CAAxB,CAAf;;AAEA,QAAMC,yBAAyB,GAAGF,+BAASG,gBAAT,CAA0B,OAAO;AAC/DC,IAAAA,SAAS,EAAE,CAAC;AAAEL,MAAAA,MAAM,EAAG,GAAEA,MAAM,CAACM,KAAM;AAA1B,KAAD;AADoD,GAAP,CAA1B,CAAlC;;AAIA,QAAMC,OAAO,GAAG,MAAM;AAClBR,IAAAA,aAAa,CAACS,IAAI,IAAI,CAACA,IAAV,CAAb;AACAR,IAAAA,MAAM,CAACM,KAAP,GAAeL,+BAASQ,UAAT,CAAoBX,UAAU,GAAG,GAAH,GAAS,CAAvC,EAA0ChB,gBAA1C,CAAf;AACH,GAHD;;AAKA,sBACI,6BAAC,aAAD,qBACI,6BAAC,iBAAD;AACI,IAAA,OAAO,EAAEyB,OADb;AAEI,IAAA,KAAK,EAAEV,MAAM,CAACX;AAFlB,KAIKO,QAAQ,gBACL,6BAAC,cAAD,CAAO,QAAP,QACKA,QADL,eAEI,6BAAC,aAAD;AAAQ,IAAA,IAAI,EAAE;AAAd,IAFJ,CADK,GAKL,IATR,eAWI,6BAAC,iBAAD;AACI,IAAA,QAAQ,EAAEE,KADd;AAEI,IAAA,OAAO,EAAEC;AAFb,IAXJ,eAgBI,6BAAC,aAAD;AAAQ,IAAA,IAAI,EAAE;AAAd,IAhBJ,eAkBI,6BAAC,aAAD;AAAQ,IAAA,IAAI,EAAE;AAAd,IAlBJ,eAoBI,6BAAC,aAAD,qBACI,6BAAC,8BAAD,CAAU,IAAV;AAAe,IAAA,KAAK,EAAEO;AAAtB,KACKT,SAAS,GAAGA,SAAH;AAAA;AACN;AACA,+BAAC,kBAAD;AAAiB,IAAA,MAAM,EAAE,EAAzB;AAA6B,IAAA,KAAK,EAAE;AAApC,IAHR,CADJ,CApBJ,CADJ,EA+BKI,UAAU,GACP,4BAAMY,cAAN,CAAqBlB,OAArB,IAAiCA,OAAjC,gBACI,6BAAC,iBAAD;AACI,IAAA,QAAQ,EAAEA,OADd;AAEI,IAAA,KAAK,EAAE,eAFX;AAGI,IAAA,OAAO,EAAE;AAHb,IAFG,GAQP,IAvCR,eAyCI,6BAAC,cAAD,OAzCJ,CADJ;AA6CH","sourcesContent":["import React, { useState } from 'react';\nimport Animated from 'react-native-reanimated';\nimport { NamedStylesStringUnion, UseStyles } from '@fountain-ui/styles';\nimport { ChevronDown as ChevronDownIcon } from '../internal/icons';\nimport { ButtonBase, Column, Divider, Spacer, Typography, useTheme } from '../index';\nimport AccordionProps from './AccordionProps';\n\ntype AccordionStyles = NamedStylesStringUnion<'root'>;\n\nconst ANIMATION_OPTION = { duration: 250 };\n\nconst useStyles: UseStyles<AccordionStyles> = function (): AccordionStyles {\n const theme = useTheme();\n\n return {\n root: {\n flexDirection: 'row',\n paddingVertical: theme.spacing(3),\n },\n };\n};\n\nexport default function Accordion(props: AccordionProps) {\n const {\n content,\n LeftIcon,\n RightIcon,\n title,\n titleVariant = 'subtitle2',\n } = props;\n\n const styles = useStyles();\n\n const [isExpanded, setIsExpanded] = useState(false);\n const rotate = Animated.useSharedValue(0);\n\n const animatedChevronDownStyles = Animated.useAnimatedStyle(() => ({\n transform: [{ rotate: `${rotate.value}deg` }],\n }));\n\n const onPress = () => {\n setIsExpanded(prev => !prev);\n rotate.value = Animated.withTiming(isExpanded ? 180 : 0, ANIMATION_OPTION);\n };\n\n return (\n <Column>\n <ButtonBase\n onPress={onPress}\n style={styles.root}\n >\n {LeftIcon ? (\n <React.Fragment>\n {LeftIcon}\n <Spacer size={2}/>\n </React.Fragment>\n ) : null}\n\n <Typography\n children={title}\n variant={titleVariant}\n />\n\n <Spacer flex={1}/>\n\n <Spacer size={2}/>\n\n <Column>\n <Animated.View style={animatedChevronDownStyles}>\n {RightIcon ? RightIcon : (\n // @ts-ignore\n <ChevronDownIcon height={24} width={24}/>\n )}\n </Animated.View>\n </Column>\n </ButtonBase>\n\n {isExpanded ? (\n React.isValidElement(content) ? (content) : (\n <Typography\n children={content}\n color={'textSecondary'}\n variant={'body2'}\n />\n )\n ) : null}\n\n <Divider/>\n </Column>\n );\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["ButtonBase.tsx"],"names":["ORIGINAL_OPACITY","ACTIVE_OPACITY","DISABLED_OPACITY","ORIGINAL_SCALE","MINIFIED_SCALE","animationTimingConfig","duration","styles","StyleSheet","create","disabled","opacity","transform","scale","ButtonBase","props","children","disableThrottle","onPress","pressEffect","style","throttleMillis","otherProps","handlePress","periodMillis","callback","Animated","useSharedValue","animatedStyle","useAnimatedStyle","value","startAnimation","pressIn","isHovered","withTiming","withDelay","undefined","hovered"],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["ButtonBase.tsx"],"names":["ORIGINAL_OPACITY","ACTIVE_OPACITY","DISABLED_OPACITY","ORIGINAL_SCALE","MINIFIED_SCALE","animationTimingConfig","duration","styles","StyleSheet","create","disabled","opacity","transform","scale","ButtonBase","props","children","disableThrottle","onPress","pressEffect","style","throttleMillis","otherProps","handlePress","periodMillis","callback","Animated","useSharedValue","animatedStyle","useAnimatedStyle","value","startAnimation","pressIn","isHovered","withTiming","withDelay","undefined","hovered"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;AAGA,MAAMA,gBAAgB,GAAG,CAAzB;AACA,MAAMC,cAAc,GAAG,GAAvB;AACA,MAAMC,gBAAgB,GAAG,EAAzB;AAEA,MAAMC,cAAc,GAAG,CAAvB;AACA,MAAMC,cAAc,GAAG,GAAvB;AAEA,MAAMC,qBAAgD,GAAG;AAAEC,EAAAA,QAAQ,EAAE;AAAZ,CAAzD;;AAEA,MAAMC,MAAM,GAAGC,mBAAWC,MAAX,CAAkB;AAC7BC,EAAAA,QAAQ,EAAE;AACNC,IAAAA,OAAO,EAAET,gBADH;AAENU,IAAAA,SAAS,EAAE,CAAC;AAAEC,MAAAA,KAAK,EAAEV;AAAT,KAAD;AAFL;AADmB,CAAlB,CAAf;;AAOe,SAASW,UAAT,CAAoBC,KAApB,EAA4C;AACvD,QAAM;AACFC,IAAAA,QADE;AAEFN,IAAAA,QAAQ,GAAG,KAFT;AAGFO,IAAAA,eAAe,GAAG,KAHhB;AAIFC,IAAAA,OAJE;AAKFC,IAAAA,WAAW,GAAG,SALZ;AAMFC,IAAAA,KANE;AAOFC,IAAAA,cAAc,GAAG,GAPf;AAQF,OAAGC;AARD,MASFP,KATJ;AAWA,QAAMQ,WAAW,GAAG,wBAAY;AAC5BC,IAAAA,YAAY,EAAEP,eAAe,GAAG,CAAH,GAAOI,cADR;AAE5BI,IAAAA,QAAQ,EAAEP;AAFkB,GAAZ,CAApB;;AAKA,QAAMP,OAAO,GAAGe,+BAASC,cAAT,CAAwB3B,gBAAxB,CAAhB;;AACA,QAAMa,KAAK,GAAGa,+BAASC,cAAT,CAAwBxB,cAAxB,CAAd;;AAEA,QAAMyB,aAAa,GAAGF,+BAASG,gBAAT,CAA0B,OAAO;AACnDlB,IAAAA,OAAO,EAAEA,OAAO,CAACmB,KADkC;AAEnDlB,IAAAA,SAAS,EAAE,CAAC;AAAEC,MAAAA,KAAK,EAAEA,KAAK,CAACiB;AAAf,KAAD;AAFwC,GAAP,CAA1B,CAAtB;;AAKA,QAAMC,cAAc,GAAG,CAACC,OAAD,EAAmBC,SAAkB,GAAG,KAAxC,KAAkD;AACrE,QAAId,WAAW,KAAK,MAApB,EAA4B;AACxB;AACH;;AAED,QAAIA,WAAW,KAAK,SAApB,EAA+B;AAC3B,UAAIa,OAAJ,EAAa;AACTrB,QAAAA,OAAO,CAACmB,KAAR,GAAgB7B,cAAhB;AACH,OAFD,MAEO;AACHU,QAAAA,OAAO,CAACmB,KAAR,GAAgBJ,+BAASQ,UAAT,CAAoBlC,gBAApB,EAAsCK,qBAAtC,CAAhB;AACH;AACJ,KAND,MAMO,IAAI,CAAC4B,SAAL,EAAgB;AACnB,UAAID,OAAJ,EAAa;AACTnB,QAAAA,KAAK,CAACiB,KAAN,GAAcJ,+BAASS,SAAT,CACV,GADU,EAEVT,+BAASQ,UAAT,CAAoB9B,cAApB,EAAoCC,qBAApC,CAFU,CAAd;AAIH,OALD,MAKO;AACHQ,QAAAA,KAAK,CAACiB,KAAN,GAAcJ,+BAASQ,UAAT,CAAoB/B,cAApB,EAAoCE,qBAApC,CAAd;AACH;AACJ;AACJ,GArBD;;AAuBA,sBACI,6BAAC,2BAAD;AACI,IAAA,QAAQ,EAAEK,QADd;AAEI,IAAA,OAAO,EAAEa,WAFb;AAGI,IAAA,SAAS,EAAE,MAAMQ,cAAc,CAAC,IAAD,CAHnC;AAII,IAAA,UAAU,EAAE,MAAMA,cAAc,CAAC,KAAD,CAJpC;AAKI,IAAA,KAAK,EAAE,CACHH,aADG,EAEHlB,QAAQ,GAAGH,MAAM,CAACG,QAAV,GAAqB0B,SAF1B,EAGHhB,KAHG;AALX,KAUQE,UAVR,GAYK,OAAON,QAAP,KAAoB,UAApB,GACG,CAAC;AAAEqB,IAAAA;AAAF,GAAD,KAAiB;AACb,QAAIA,OAAO,KAAKD,SAAZ,IAAyB,CAAC1B,QAA9B,EAAwC;AACpCqB,MAAAA,cAAc,CAACM,OAAD,EAAU,IAAV,CAAd;AACH;;AAED,WAAOrB,QAAP;AACH,GAPJ,GAQGA,QApBR,CADJ;AAwBH;;AAAA","sourcesContent":["import React from 'react';\nimport Animated from 'react-native-reanimated';\nimport { useThrottle } from '../hooks';\nimport { AnimatedPressable } from '../animated';\nimport { StyleSheet } from '../styles';\nimport type ButtonBaseProps from './ButtonBaseProps';\n\nconst ORIGINAL_OPACITY = 1;\nconst ACTIVE_OPACITY = .65;\nconst DISABLED_OPACITY = .3;\n\nconst ORIGINAL_SCALE = 1;\nconst MINIFIED_SCALE = .96;\n\nconst animationTimingConfig: Animated.WithTimingConfig = { duration: 150 };\n\nconst styles = StyleSheet.create({\n disabled: {\n opacity: DISABLED_OPACITY,\n transform: [{ scale: ORIGINAL_SCALE }],\n },\n});\n\nexport default function ButtonBase(props: ButtonBaseProps) {\n const {\n children,\n disabled = false,\n disableThrottle = false,\n onPress,\n pressEffect = 'opacity',\n style,\n throttleMillis = 650,\n ...otherProps\n } = props;\n\n const handlePress = useThrottle({\n periodMillis: disableThrottle ? 0 : throttleMillis,\n callback: onPress,\n });\n\n const opacity = Animated.useSharedValue(ORIGINAL_OPACITY);\n const scale = Animated.useSharedValue(ORIGINAL_SCALE);\n\n const animatedStyle = Animated.useAnimatedStyle(() => ({\n opacity: opacity.value,\n transform: [{ scale: scale.value }],\n }));\n\n const startAnimation = (pressIn: boolean, isHovered: boolean = false) => {\n if (pressEffect === 'none') {\n return;\n }\n\n if (pressEffect === 'opacity') {\n if (pressIn) {\n opacity.value = ACTIVE_OPACITY;\n } else {\n opacity.value = Animated.withTiming(ORIGINAL_OPACITY, animationTimingConfig);\n }\n } else if (!isHovered) {\n if (pressIn) {\n scale.value = Animated.withDelay(\n 100,\n Animated.withTiming(MINIFIED_SCALE, animationTimingConfig),\n );\n } else {\n scale.value = Animated.withTiming(ORIGINAL_SCALE, animationTimingConfig);\n }\n }\n };\n\n return (\n <AnimatedPressable\n disabled={disabled}\n onPress={handlePress}\n onPressIn={() => startAnimation(true)}\n onPressOut={() => startAnimation(false)}\n style={[\n animatedStyle,\n disabled ? styles.disabled : undefined,\n style,\n ]}\n {...otherProps}\n >\n {typeof children !== 'function' ? (\n ({ hovered }) => {\n if (hovered !== undefined && !disabled) {\n startAnimation(hovered, true);\n }\n\n return children;\n }\n ) : children}\n </AnimatedPressable>\n );\n};\n"]}
|
|
@@ -34,9 +34,12 @@ function CircularProgress(props) {
|
|
|
34
34
|
} = props;
|
|
35
35
|
const styles = useStyles();
|
|
36
36
|
const rootStyle = (0, _styles.css)([styles.root, style]);
|
|
37
|
-
|
|
38
|
-
const
|
|
39
|
-
|
|
37
|
+
|
|
38
|
+
const sharedSpin = _reactNativeReanimated.default.useSharedValue(0);
|
|
39
|
+
|
|
40
|
+
const spinStyle = _reactNativeReanimated.default.useAnimatedStyle(() => {
|
|
41
|
+
const interpolatedSpin = _reactNativeReanimated.default.interpolate(sharedSpin.value, [0, 1], [0, 360]);
|
|
42
|
+
|
|
40
43
|
return {
|
|
41
44
|
transform: [{
|
|
42
45
|
rotate: `${interpolatedSpin}deg`
|
|
@@ -45,7 +48,7 @@ function CircularProgress(props) {
|
|
|
45
48
|
});
|
|
46
49
|
|
|
47
50
|
_react.default.useEffect(() => {
|
|
48
|
-
sharedSpin.value =
|
|
51
|
+
sharedSpin.value = _reactNativeReanimated.default.withRepeat(_reactNativeReanimated.default.withTiming(1, {
|
|
49
52
|
duration: 900,
|
|
50
53
|
easing: _reactNativeReanimated.Easing.linear
|
|
51
54
|
}), -1, false);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["CircularProgress.tsx"],"names":["useStyles","root","alignItems","justifyContent","CircularProgress","props","style","styles","rootStyle","sharedSpin","spinStyle","interpolatedSpin","value","transform","rotate","React","useEffect","duration","easing","Easing","linear"],"mappings":";;;;;;;AAAA;;AAGA;;
|
|
1
|
+
{"version":3,"sources":["CircularProgress.tsx"],"names":["useStyles","root","alignItems","justifyContent","CircularProgress","props","style","styles","rootStyle","sharedSpin","Animated","useSharedValue","spinStyle","useAnimatedStyle","interpolatedSpin","interpolate","value","transform","rotate","React","useEffect","withRepeat","withTiming","duration","easing","Easing","linear"],"mappings":";;;;;;;AAAA;;AAGA;;AACA;;AACA;;;;;;;;AAKA,MAAMA,SAA4C,GAAG,YAAoC;AACrF,SAAO;AACHC,IAAAA,IAAI,EAAE;AACFC,MAAAA,UAAU,EAAE,QADV;AAEFC,MAAAA,cAAc,EAAE;AAFd;AADH,GAAP;AAMH,CAPD;;AASe,SAASC,gBAAT,CAA0BC,KAA1B,EAAuE;AAClF,QAAM;AAAEC,IAAAA;AAAF,MAAYD,KAAlB;AAEA,QAAME,MAAM,GAAGP,SAAS,EAAxB;AAEA,QAAMQ,SAAS,GAAG,iBAAI,CAClBD,MAAM,CAACN,IADW,EAElBK,KAFkB,CAAJ,CAAlB;;AAKA,QAAMG,UAAU,GAAGC,+BAASC,cAAT,CAAwB,CAAxB,CAAnB;;AAEA,QAAMC,SAAS,GAAGF,+BAASG,gBAAT,CAA0B,MAAM;AAC9C,UAAMC,gBAAgB,GAAGJ,+BAASK,WAAT,CAAqBN,UAAU,CAACO,KAAhC,EAAuC,CAAC,CAAD,EAAI,CAAJ,CAAvC,EAA+C,CAAC,CAAD,EAAI,GAAJ,CAA/C,CAAzB;;AAEA,WAAO;AACHC,MAAAA,SAAS,EAAE,CAAC;AAAEC,QAAAA,MAAM,EAAG,GAAEJ,gBAAiB;AAA9B,OAAD;AADR,KAAP;AAGH,GANiB,CAAlB;;AAQAK,iBAAMC,SAAN,CAAgB,MAAM;AAClBX,IAAAA,UAAU,CAACO,KAAX,GAAmBN,+BAASW,UAAT,CACfX,+BAASY,UAAT,CAAoB,CAApB,EAAuB;AAAEC,MAAAA,QAAQ,EAAE,GAAZ;AAAiBC,MAAAA,MAAM,EAAEC,8BAAOC;AAAhC,KAAvB,CADe,EAEf,CAAC,CAFc,EAGf,KAHe,CAAnB;AAKH,GAND,EAMG,EANH;;AAQA,sBACI,6BAAC,8BAAD,CAAU,IAAV;AAAe,IAAA,KAAK,EAAE,CAACd,SAAD,EAAYJ,SAAZ;AAAtB,kBACI,6BAAC,uBAAD,OADJ,CADJ;AAKH;;AAAA","sourcesContent":["import React from 'react';\nimport { ViewProps } from 'react-native';\nimport { NamedStylesStringUnion, UseStyles } from '@fountain-ui/styles';\nimport Animated, { Easing } from 'react-native-reanimated';\nimport { CircularProgress as CircularProgressIcon } from '../internal/icons';\nimport { css } from '../styles';\nimport { OverridableComponentProps } from '../types';\n\ntype CircularProgressStyles = NamedStylesStringUnion<'root'>;\n\nconst useStyles: UseStyles<CircularProgressStyles> = function (): CircularProgressStyles {\n return {\n root: {\n alignItems: 'center',\n justifyContent: 'center',\n },\n };\n};\n\nexport default function CircularProgress(props: OverridableComponentProps<ViewProps>) {\n const { style } = props;\n\n const styles = useStyles();\n\n const rootStyle = css([\n styles.root,\n style,\n ]);\n\n const sharedSpin = Animated.useSharedValue(0);\n\n const spinStyle = Animated.useAnimatedStyle(() => {\n const interpolatedSpin = Animated.interpolate(sharedSpin.value, [0, 1], [0, 360]);\n\n return {\n transform: [{ rotate: `${interpolatedSpin}deg` }],\n };\n });\n\n React.useEffect(() => {\n sharedSpin.value = Animated.withRepeat(\n Animated.withTiming(1, { duration: 900, easing: Easing.linear }),\n -1,\n false,\n );\n }, []);\n\n return (\n <Animated.View style={[spinStyle, rootStyle]}>\n <CircularProgressIcon/>\n </Animated.View>\n );\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Snackbar.tsx"],"names":["useStyles","theme","insets","root","alignSelf","bottom","spacing","maxWidth","paddingBottom","paddingHorizontal","position","width","Snackbar","props","animatedY","autoHideDuration","children","message","onClose","style","visible","otherProps","autoHideTimer","React","useRef","clearAutoHideTimeout","current","clearTimeout","useEffect","setTimeout","styles","exited","setExited","useState"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;AAKA,MAAMA,SAAoC,GAAG,YAA4B;AACrE,QAAMC,KAAK,GAAG,wBAAd;AACA,QAAMC,MAAM,GAAG,oDAAf;AAEA,SAAO;AACHC,IAAAA,IAAI,EAAE;AACFC,MAAAA,SAAS,EAAE,QADT;AAEFC,MAAAA,MAAM,EAAEJ,KAAK,CAACK,OAAN,CAAc,CAAd,CAFN;AAGFC,MAAAA,QAAQ,EAAE,GAHR;AAIFC,MAAAA,aAAa,EAAEN,MAAM,CAACG,MAJpB;AAKFI,MAAAA,iBAAiB,EAAER,KAAK,CAACK,OAAN,CAAc,CAAd,CALjB;AAMFI,MAAAA,QAAQ,EAAE,UANR;AAOFC,MAAAA,KAAK,EAAE;
|
|
1
|
+
{"version":3,"sources":["Snackbar.tsx"],"names":["useStyles","theme","insets","root","alignSelf","bottom","spacing","maxWidth","paddingBottom","paddingHorizontal","position","width","zIndex","Snackbar","props","animatedY","autoHideDuration","children","message","onClose","style","visible","otherProps","autoHideTimer","React","useRef","clearAutoHideTimeout","current","clearTimeout","useEffect","setTimeout","styles","exited","setExited","useState"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;AAKA,MAAMA,SAAoC,GAAG,YAA4B;AACrE,QAAMC,KAAK,GAAG,wBAAd;AACA,QAAMC,MAAM,GAAG,oDAAf;AAEA,SAAO;AACHC,IAAAA,IAAI,EAAE;AACFC,MAAAA,SAAS,EAAE,QADT;AAEFC,MAAAA,MAAM,EAAEJ,KAAK,CAACK,OAAN,CAAc,CAAd,CAFN;AAGFC,MAAAA,QAAQ,EAAE,GAHR;AAIFC,MAAAA,aAAa,EAAEN,MAAM,CAACG,MAJpB;AAKFI,MAAAA,iBAAiB,EAAER,KAAK,CAACK,OAAN,CAAc,CAAd,CALjB;AAMFI,MAAAA,QAAQ,EAAE,UANR;AAOFC,MAAAA,KAAK,EAAE,MAPL;AAQF;AACAC,MAAAA,MAAM,EAAE;AATN;AADH,GAAP;AAaH,CAjBD;;AAmBe,SAASC,QAAT,CAAkBC,KAAlB,EAAwC;AACnD,QAAM;AACFC,IAAAA,SADE;AAEFC,IAAAA,gBAAgB,GAAG,IAFjB;AAGFC,IAAAA,QAHE;AAIFC,IAAAA,OAJE;AAKFC,IAAAA,OALE;AAMFC,IAAAA,KANE;AAOFC,IAAAA,OAAO,GAAG,KAPR;AAQF,OAAGC;AARD,MASFR,KATJ;;AAWA,QAAMS,aAAa,GAAGC,eAAMC,MAAN,CAA4B,IAA5B,CAAtB;;AAEA,QAAMC,oBAAoB,GAAG,MAAM;AAC/B,QAAIH,aAAa,CAACI,OAAd,KAA0B,IAA9B,EAAoC;AAChCC,MAAAA,YAAY,CAACL,aAAa,CAACI,OAAf,CAAZ;AACH;AACJ,GAJD;;AAMAH,iBAAMK,SAAN,CAAgB,MAAM;AAClB,WAAO,MAAM;AACTH,MAAAA,oBAAoB;AACvB,KAFD;AAGH,GAJD,EAIG,EAJH;;AAMAF,iBAAMK,SAAN,CAAgB,MAAM;AAClB,QAAIR,OAAO,IAAIL,gBAAgB,KAAK,IAApC,EAA0C;AACtCU,MAAAA,oBAAoB,GADkB,CAGtC;;AACAH,MAAAA,aAAa,CAACI,OAAd,GAAwBG,UAAU,CAAC,MAAM;AACrC,YAAIX,OAAJ,EAAa;AACTA,UAAAA,OAAO;AACV;AACJ,OAJiC,EAI/BH,gBAJ+B,CAAlC;AAKH;AACJ,GAXD,EAWG,CAACK,OAAD,EAAUL,gBAAV,EAA4BG,OAA5B,CAXH;;AAaA,QAAMY,MAAM,GAAG/B,SAAS,EAAxB;;AAEA,QAAM,CAACgC,MAAD,EAASC,SAAT,IAAsBT,eAAMU,QAAN,CAAe,IAAf,CAA5B;;AAEA,MAAI,CAACb,OAAD,IAAYW,MAAhB,EAAwB;AACpB,WAAO,IAAP;AACH;;AAED,sBACI,6BAAC,iBAAD;AACI,IAAA,KAAK,EAAE,iBAAI,CACPD,MAAM,CAAC5B,IADA,EAEPiB,KAFO,CAAJ;AADX,KAKQE,UALR,gBAOI,6BAAC,cAAD;AACI,IAAA,SAAS,EAAEP,SADf;AAEI,IAAA,MAAM,EAAEM,OAFZ;AAGI,IAAA,OAAO,EAAE,MAAMY,SAAS,CAAC,KAAD,CAH5B;AAII,IAAA,QAAQ,EAAE,MAAMA,SAAS,CAAC,IAAD;AAJ7B,KAMKhB,QAAQ,GAAGA,QAAH,gBACL,6BAAC,wBAAD;AAAiB,IAAA,OAAO,EAAEC;AAA1B,IAPR,CAPJ,CADJ;AAoBH;;AAAA","sourcesContent":["import React from 'react';\nimport { View } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\nimport { css, NamedStylesStringUnion, UseStyles } from '@fountain-ui/styles';\nimport Slide from '../Slide';\nimport SnackbarContent from '../SnackbarContent';\nimport { useTheme } from '../styles';\nimport type SnackbarProps from './SnackbarProps';\n\ntype SnackBarStyles = NamedStylesStringUnion<'root'>;\n\nconst useStyles: UseStyles<SnackBarStyles> = function (): SnackBarStyles {\n const theme = useTheme();\n const insets = useSafeAreaInsets();\n\n return {\n root: {\n alignSelf: 'center',\n bottom: theme.spacing(2),\n maxWidth: 480,\n paddingBottom: insets.bottom,\n paddingHorizontal: theme.spacing(2),\n position: 'absolute',\n width: '100%',\n // TODO: Need to remove zIndex.\n zIndex: 32,\n },\n };\n};\n\nexport default function Snackbar(props: SnackbarProps) {\n const {\n animatedY,\n autoHideDuration = null,\n children,\n message,\n onClose,\n style,\n visible = false,\n ...otherProps\n } = props;\n\n const autoHideTimer = React.useRef<number | null>(null);\n\n const clearAutoHideTimeout = () => {\n if (autoHideTimer.current !== null) {\n clearTimeout(autoHideTimer.current);\n }\n };\n\n React.useEffect(() => {\n return () => {\n clearAutoHideTimeout();\n };\n }, []);\n\n React.useEffect(() => {\n if (visible && autoHideDuration !== null) {\n clearAutoHideTimeout();\n\n // @ts-ignore\n autoHideTimer.current = setTimeout(() => {\n if (onClose) {\n onClose();\n }\n }, autoHideDuration);\n }\n }, [visible, autoHideDuration, onClose]);\n\n const styles = useStyles();\n\n const [exited, setExited] = React.useState(true);\n\n if (!visible && exited) {\n return null;\n }\n\n return (\n <View\n style={css([\n styles.root,\n style,\n ])}\n {...otherProps}\n >\n <Slide\n animatedY={animatedY}\n appear={visible}\n onEnter={() => setExited(false)}\n onExited={() => setExited(true)}\n >\n {children ? children : (\n <SnackbarContent message={message}/>\n )}\n </Slide>\n </View>\n );\n};\n"]}
|
|
@@ -22,6 +22,11 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
22
22
|
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
23
23
|
|
|
24
24
|
const styles = _styles.StyleSheet.create({
|
|
25
|
+
root: { // TODO: Remove redundant platform checking
|
|
26
|
+
...(_reactNative.Platform.OS === 'web' ? {
|
|
27
|
+
minWidth: 'auto'
|
|
28
|
+
} : {})
|
|
29
|
+
},
|
|
25
30
|
primary: {
|
|
26
31
|
minHeight: 48
|
|
27
32
|
},
|
|
@@ -48,7 +53,7 @@ function Tab(props) {
|
|
|
48
53
|
const theme = (0, _styles.useTheme)();
|
|
49
54
|
const vertical = variant === 'bottom-navigation';
|
|
50
55
|
const color = selected ? theme.palette.text.primary : theme.palette.text.hint;
|
|
51
|
-
const tabBaseStyle = (0, _styles.css)([variant === 'primary' ? styles.primary : variant === 'secondary' ? styles.secondary : styles.bottomNavigation, style]);
|
|
56
|
+
const tabBaseStyle = (0, _styles.css)([styles.root, variant === 'primary' ? styles.primary : variant === 'secondary' ? styles.secondary : styles.bottomNavigation, style]);
|
|
52
57
|
const fontStyle = (0, _styles.createFontStyle)(theme, {
|
|
53
58
|
selector: typo => variant === 'primary' ? typo.h2 : variant === 'secondary' ? typo.button2 : typo.flag,
|
|
54
59
|
color
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Tab.tsx"],"names":["styles","StyleSheet","create","primary","minHeight","secondary","bottomNavigation","Tab","props","badgeVisible","children","enableIndicator","icon","defaultIcon","selected","selectedIcon","variant","style","otherProps","theme","vertical","color","palette","text","hint","tabBaseStyle","fontStyle","selector","typo","h2","button2","flag","iconElement","React","cloneElement","fill"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA;;AACA;;;;;;AAEA,MAAMA,MAAM,GAAGC,mBAAWC,MAAX,CAAkB;AAC7BC,EAAAA,OAAO,EAAE;AACLC,IAAAA,SAAS,EAAE;AADN,
|
|
1
|
+
{"version":3,"sources":["Tab.tsx"],"names":["styles","StyleSheet","create","root","Platform","OS","minWidth","primary","minHeight","secondary","bottomNavigation","Tab","props","badgeVisible","children","enableIndicator","icon","defaultIcon","selected","selectedIcon","variant","style","otherProps","theme","vertical","color","palette","text","hint","tabBaseStyle","fontStyle","selector","typo","h2","button2","flag","iconElement","React","cloneElement","fill"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA;;AACA;;;;;;AAEA,MAAMA,MAAM,GAAGC,mBAAWC,MAAX,CAAkB;AAC7BC,EAAAA,IAAI,EAAE,EACF;AACA,QAAIC,sBAASC,EAAT,KAAgB,KAAhB,GAAwB;AAAEC,MAAAA,QAAQ,EAAE;AAAZ,KAAxB,GAA+C,EAAnD;AAFE,GADuB;AAK7BC,EAAAA,OAAO,EAAE;AACLC,IAAAA,SAAS,EAAE;AADN,GALoB;AAQ7BC,EAAAA,SAAS,EAAE;AACPD,IAAAA,SAAS,EAAE;AADJ,GARkB;AAW7BE,EAAAA,gBAAgB,EAAE;AACdF,IAAAA,SAAS,EAAE;AADG;AAXW,CAAlB,CAAf;;AAgBe,SAASG,GAAT,CAAaC,KAAb,EAA8B;AACzC,QAAM;AACFC,IAAAA,YAAY,GAAG,KADb;AAEFC,IAAAA,QAFE;AAGFC,IAAAA,eAHE;AAIFC,IAAAA,IAAI,EAAEC,WAJJ;AAKFC,IAAAA,QALE;AAMFC,IAAAA,YANE;AAOFC,IAAAA,OAAO,GAAG,SAPR;AAQFC,IAAAA,KARE;AASF,OAAGC;AATD,MAUFV,KAVJ;AAYA,QAAMW,KAAK,GAAG,uBAAd;AAEA,QAAMC,QAAQ,GAAGJ,OAAO,KAAK,mBAA7B;AAEA,QAAMK,KAAK,GAAGP,QAAQ,GAAGK,KAAK,CAACG,OAAN,CAAcC,IAAd,CAAmBpB,OAAtB,GAAgCgB,KAAK,CAACG,OAAN,CAAcC,IAAd,CAAmBC,IAAzE;AAEA,QAAMC,YAAY,GAAG,iBAAI,CACrB7B,MAAM,CAACG,IADc,EAErBiB,OAAO,KAAK,SAAZ,GACMpB,MAAM,CAACO,OADb,GAEOa,OAAO,KAAK,WAAZ,GAA0BpB,MAAM,CAACS,SAAjC,GAA6CT,MAAM,CAACU,gBAJtC,EAKrBW,KALqB,CAAJ,CAArB;AAQA,QAAMS,SAAS,GAAG,6BAAgBP,KAAhB,EAAuB;AACrCQ,IAAAA,QAAQ,EAAGC,IAAD,IAAUZ,OAAO,KAAK,SAAZ,GACdY,IAAI,CAACC,EADS,GAEbb,OAAO,KAAK,WAAZ,GAA0BY,IAAI,CAACE,OAA/B,GAAyCF,IAAI,CAACG,IAHhB;AAIrCV,IAAAA;AAJqC,GAAvB,CAAlB;AAOA,QAAMT,IAAI,GAAGE,QAAQ,GAAIC,YAAY,IAAIF,WAApB,GAAmCA,WAAxD;AACA,QAAMmB,WAAW,GAAGpB,IAAI,gBAAGqB,eAAMC,YAAN,CAAmBtB,IAAnB,EAAyB;AAAEuB,IAAAA,IAAI,EAAEd;AAAR,GAAzB,CAAH,GAA+C,IAAvE;AAEA,sBACI,6BAAC,gBAAD;AACI,IAAA,QAAQ,EAAED,QADd;AAEI,IAAA,KAAK,EAAEK;AAFX,KAGQP,UAHR,gBAKI,6BAAC,cAAD;AACI,IAAA,QAAQ,EAAEc,WADd;AAEI,IAAA,SAAS,EAAE,CAACvB;AAFhB,IALJ,eAUI,6BAAC,iBAAD;AACI,IAAA,QAAQ,EAAEC,QADd;AAEI,IAAA,KAAK,EAAE,iBAAIgB,SAAJ;AAFX,IAVJ,EAeKf,eAAe,gBAAG,6BAAC,qBAAD,OAAH,GAAqB,IAfzC,CADJ;AAmBH;;AAAA","sourcesContent":["import React from 'react';\nimport { Platform, Text } from 'react-native';\nimport Badge from '../Badge';\nimport TabBase from '../TabBase';\nimport type TabProps from './TabProps';\nimport { createFontStyle, css, StyleSheet, useTheme } from '../styles';\nimport TabIndicator from './TabIndicator';\n\nconst styles = StyleSheet.create({\n root: {\n // TODO: Remove redundant platform checking\n ...(Platform.OS === 'web' ? { minWidth: 'auto' } : {}),\n },\n primary: {\n minHeight: 48,\n },\n secondary: {\n minHeight: 48,\n },\n bottomNavigation: {\n minHeight: 56,\n },\n});\n\nexport default function Tab(props: TabProps) {\n const {\n badgeVisible = false,\n children,\n enableIndicator,\n icon: defaultIcon,\n selected,\n selectedIcon,\n variant = 'primary',\n style,\n ...otherProps\n } = props;\n\n const theme = useTheme();\n\n const vertical = variant === 'bottom-navigation';\n\n const color = selected ? theme.palette.text.primary : theme.palette.text.hint;\n\n const tabBaseStyle = css([\n styles.root,\n variant === 'primary'\n ? styles.primary\n : (variant === 'secondary' ? styles.secondary : styles.bottomNavigation),\n style,\n ]);\n\n const fontStyle = createFontStyle(theme, {\n selector: (typo) => variant === 'primary'\n ? typo.h2\n : (variant === 'secondary' ? typo.button2 : typo.flag),\n color,\n });\n\n const icon = selected ? (selectedIcon || defaultIcon) : defaultIcon;\n const iconElement = icon ? React.cloneElement(icon, { fill: color }) : null;\n\n return (\n <TabBase\n vertical={vertical}\n style={tabBaseStyle}\n {...otherProps}\n >\n <Badge\n children={iconElement}\n invisible={!badgeVisible}\n />\n\n <Text\n children={children}\n style={css(fontStyle)}\n />\n\n {enableIndicator ? <TabIndicator/> : null}\n </TabBase>\n );\n};\n"]}
|
|
@@ -1,10 +1,21 @@
|
|
|
1
1
|
import React, { useState } from 'react';
|
|
2
|
-
import Animated
|
|
2
|
+
import Animated from 'react-native-reanimated';
|
|
3
3
|
import { ChevronDown as ChevronDownIcon } from '../internal/icons';
|
|
4
4
|
import { ButtonBase, Column, Divider, Spacer, Typography, useTheme } from '../index';
|
|
5
5
|
const ANIMATION_OPTION = {
|
|
6
6
|
duration: 250
|
|
7
7
|
};
|
|
8
|
+
|
|
9
|
+
const useStyles = function () {
|
|
10
|
+
const theme = useTheme();
|
|
11
|
+
return {
|
|
12
|
+
root: {
|
|
13
|
+
flexDirection: 'row',
|
|
14
|
+
paddingVertical: theme.spacing(3)
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
|
|
8
19
|
export default function Accordion(props) {
|
|
9
20
|
const {
|
|
10
21
|
content,
|
|
@@ -13,37 +24,23 @@ export default function Accordion(props) {
|
|
|
13
24
|
title,
|
|
14
25
|
titleVariant = 'subtitle2'
|
|
15
26
|
} = props;
|
|
16
|
-
const theme = useTheme();
|
|
17
|
-
|
|
18
|
-
const useStyles = function () {
|
|
19
|
-
return {
|
|
20
|
-
buttonBase: {
|
|
21
|
-
flexDirection: 'row',
|
|
22
|
-
paddingVertical: theme.spacing(3)
|
|
23
|
-
}
|
|
24
|
-
};
|
|
25
|
-
};
|
|
26
|
-
|
|
27
27
|
const styles = useStyles();
|
|
28
28
|
const [isExpanded, setIsExpanded] = useState(false);
|
|
29
|
-
const
|
|
30
|
-
const animatedChevronDownStyles = useAnimatedStyle(() => {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
rotate: `${sharedRotate.value}deg`
|
|
36
|
-
}]
|
|
37
|
-
};
|
|
38
|
-
});
|
|
29
|
+
const rotate = Animated.useSharedValue(0);
|
|
30
|
+
const animatedChevronDownStyles = Animated.useAnimatedStyle(() => ({
|
|
31
|
+
transform: [{
|
|
32
|
+
rotate: `${rotate.value}deg`
|
|
33
|
+
}]
|
|
34
|
+
}));
|
|
39
35
|
|
|
40
36
|
const onPress = () => {
|
|
41
|
-
setIsExpanded(!
|
|
37
|
+
setIsExpanded(prev => !prev);
|
|
38
|
+
rotate.value = Animated.withTiming(isExpanded ? 180 : 0, ANIMATION_OPTION);
|
|
42
39
|
};
|
|
43
40
|
|
|
44
41
|
return /*#__PURE__*/React.createElement(Column, null, /*#__PURE__*/React.createElement(ButtonBase, {
|
|
45
42
|
onPress: onPress,
|
|
46
|
-
style: styles.
|
|
43
|
+
style: styles.root
|
|
47
44
|
}, LeftIcon ? /*#__PURE__*/React.createElement(React.Fragment, null, LeftIcon, /*#__PURE__*/React.createElement(Spacer, {
|
|
48
45
|
size: 2
|
|
49
46
|
})) : null, /*#__PURE__*/React.createElement(Typography, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Accordion.tsx"],"names":["React","useState","Animated","
|
|
1
|
+
{"version":3,"sources":["Accordion.tsx"],"names":["React","useState","Animated","ChevronDown","ChevronDownIcon","ButtonBase","Column","Divider","Spacer","Typography","useTheme","ANIMATION_OPTION","duration","useStyles","theme","root","flexDirection","paddingVertical","spacing","Accordion","props","content","LeftIcon","RightIcon","title","titleVariant","styles","isExpanded","setIsExpanded","rotate","useSharedValue","animatedChevronDownStyles","useAnimatedStyle","transform","value","onPress","prev","withTiming","isValidElement"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,QAAhB,QAAgC,OAAhC;AACA,OAAOC,QAAP,MAAqB,yBAArB;AAEA,SAASC,WAAW,IAAIC,eAAxB,QAA+C,mBAA/C;AACA,SAASC,UAAT,EAAqBC,MAArB,EAA6BC,OAA7B,EAAsCC,MAAtC,EAA8CC,UAA9C,EAA0DC,QAA1D,QAA0E,UAA1E;AAKA,MAAMC,gBAAgB,GAAG;AAAEC,EAAAA,QAAQ,EAAE;AAAZ,CAAzB;;AAEA,MAAMC,SAAqC,GAAG,YAA6B;AACvE,QAAMC,KAAK,GAAGJ,QAAQ,EAAtB;AAEA,SAAO;AACHK,IAAAA,IAAI,EAAE;AACFC,MAAAA,aAAa,EAAE,KADb;AAEFC,MAAAA,eAAe,EAAEH,KAAK,CAACI,OAAN,CAAc,CAAd;AAFf;AADH,GAAP;AAMH,CATD;;AAWA,eAAe,SAASC,SAAT,CAAmBC,KAAnB,EAA0C;AACrD,QAAM;AACFC,IAAAA,OADE;AAEFC,IAAAA,QAFE;AAGFC,IAAAA,SAHE;AAIFC,IAAAA,KAJE;AAKFC,IAAAA,YAAY,GAAG;AALb,MAMFL,KANJ;AAQA,QAAMM,MAAM,GAAGb,SAAS,EAAxB;AAEA,QAAM,CAACc,UAAD,EAAaC,aAAb,IAA8B3B,QAAQ,CAAC,KAAD,CAA5C;AACA,QAAM4B,MAAM,GAAG3B,QAAQ,CAAC4B,cAAT,CAAwB,CAAxB,CAAf;AAEA,QAAMC,yBAAyB,GAAG7B,QAAQ,CAAC8B,gBAAT,CAA0B,OAAO;AAC/DC,IAAAA,SAAS,EAAE,CAAC;AAAEJ,MAAAA,MAAM,EAAG,GAAEA,MAAM,CAACK,KAAM;AAA1B,KAAD;AADoD,GAAP,CAA1B,CAAlC;;AAIA,QAAMC,OAAO,GAAG,MAAM;AAClBP,IAAAA,aAAa,CAACQ,IAAI,IAAI,CAACA,IAAV,CAAb;AACAP,IAAAA,MAAM,CAACK,KAAP,GAAehC,QAAQ,CAACmC,UAAT,CAAoBV,UAAU,GAAG,GAAH,GAAS,CAAvC,EAA0ChB,gBAA1C,CAAf;AACH,GAHD;;AAKA,sBACI,oBAAC,MAAD,qBACI,oBAAC,UAAD;AACI,IAAA,OAAO,EAAEwB,OADb;AAEI,IAAA,KAAK,EAAET,MAAM,CAACX;AAFlB,KAIKO,QAAQ,gBACL,oBAAC,KAAD,CAAO,QAAP,QACKA,QADL,eAEI,oBAAC,MAAD;AAAQ,IAAA,IAAI,EAAE;AAAd,IAFJ,CADK,GAKL,IATR,eAWI,oBAAC,UAAD;AACI,IAAA,QAAQ,EAAEE,KADd;AAEI,IAAA,OAAO,EAAEC;AAFb,IAXJ,eAgBI,oBAAC,MAAD;AAAQ,IAAA,IAAI,EAAE;AAAd,IAhBJ,eAkBI,oBAAC,MAAD;AAAQ,IAAA,IAAI,EAAE;AAAd,IAlBJ,eAoBI,oBAAC,MAAD,qBACI,oBAAC,QAAD,CAAU,IAAV;AAAe,IAAA,KAAK,EAAEM;AAAtB,KACKR,SAAS,GAAGA,SAAH;AAAA;AACN;AACA,sBAAC,eAAD;AAAiB,IAAA,MAAM,EAAE,EAAzB;AAA6B,IAAA,KAAK,EAAE;AAApC,IAHR,CADJ,CApBJ,CADJ,EA+BKI,UAAU,GACP,aAAA3B,KAAK,CAACsC,cAAN,CAAqBjB,OAArB,IAAiCA,OAAjC,gBACI,oBAAC,UAAD;AACI,IAAA,QAAQ,EAAEA,OADd;AAEI,IAAA,KAAK,EAAE,eAFX;AAGI,IAAA,OAAO,EAAE;AAHb,IAFG,GAQP,IAvCR,eAyCI,oBAAC,OAAD,OAzCJ,CADJ;AA6CH","sourcesContent":["import React, { useState } from 'react';\nimport Animated from 'react-native-reanimated';\nimport { NamedStylesStringUnion, UseStyles } from '@fountain-ui/styles';\nimport { ChevronDown as ChevronDownIcon } from '../internal/icons';\nimport { ButtonBase, Column, Divider, Spacer, Typography, useTheme } from '../index';\nimport AccordionProps from './AccordionProps';\n\ntype AccordionStyles = NamedStylesStringUnion<'root'>;\n\nconst ANIMATION_OPTION = { duration: 250 };\n\nconst useStyles: UseStyles<AccordionStyles> = function (): AccordionStyles {\n const theme = useTheme();\n\n return {\n root: {\n flexDirection: 'row',\n paddingVertical: theme.spacing(3),\n },\n };\n};\n\nexport default function Accordion(props: AccordionProps) {\n const {\n content,\n LeftIcon,\n RightIcon,\n title,\n titleVariant = 'subtitle2',\n } = props;\n\n const styles = useStyles();\n\n const [isExpanded, setIsExpanded] = useState(false);\n const rotate = Animated.useSharedValue(0);\n\n const animatedChevronDownStyles = Animated.useAnimatedStyle(() => ({\n transform: [{ rotate: `${rotate.value}deg` }],\n }));\n\n const onPress = () => {\n setIsExpanded(prev => !prev);\n rotate.value = Animated.withTiming(isExpanded ? 180 : 0, ANIMATION_OPTION);\n };\n\n return (\n <Column>\n <ButtonBase\n onPress={onPress}\n style={styles.root}\n >\n {LeftIcon ? (\n <React.Fragment>\n {LeftIcon}\n <Spacer size={2}/>\n </React.Fragment>\n ) : null}\n\n <Typography\n children={title}\n variant={titleVariant}\n />\n\n <Spacer flex={1}/>\n\n <Spacer size={2}/>\n\n <Column>\n <Animated.View style={animatedChevronDownStyles}>\n {RightIcon ? RightIcon : (\n // @ts-ignore\n <ChevronDownIcon height={24} width={24}/>\n )}\n </Animated.View>\n </Column>\n </ButtonBase>\n\n {isExpanded ? (\n React.isValidElement(content) ? (content) : (\n <Typography\n children={content}\n color={'textSecondary'}\n variant={'body2'}\n />\n )\n ) : null}\n\n <Divider/>\n </Column>\n );\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["ButtonBase.tsx"],"names":["React","Animated","useThrottle","AnimatedPressable","StyleSheet","ORIGINAL_OPACITY","ACTIVE_OPACITY","DISABLED_OPACITY","ORIGINAL_SCALE","MINIFIED_SCALE","animationTimingConfig","duration","styles","create","disabled","opacity","transform","scale","ButtonBase","props","children","disableThrottle","onPress","pressEffect","style","throttleMillis","otherProps","handlePress","periodMillis","callback","useSharedValue","animatedStyle","useAnimatedStyle","value","startAnimation","pressIn","isHovered","withTiming","withDelay","undefined","hovered"],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["ButtonBase.tsx"],"names":["React","Animated","useThrottle","AnimatedPressable","StyleSheet","ORIGINAL_OPACITY","ACTIVE_OPACITY","DISABLED_OPACITY","ORIGINAL_SCALE","MINIFIED_SCALE","animationTimingConfig","duration","styles","create","disabled","opacity","transform","scale","ButtonBase","props","children","disableThrottle","onPress","pressEffect","style","throttleMillis","otherProps","handlePress","periodMillis","callback","useSharedValue","animatedStyle","useAnimatedStyle","value","startAnimation","pressIn","isHovered","withTiming","withDelay","undefined","hovered"],"mappings":"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","sourcesContent":["import React from 'react';\nimport Animated from 'react-native-reanimated';\nimport { useThrottle } from '../hooks';\nimport { AnimatedPressable } from '../animated';\nimport { StyleSheet } from '../styles';\nimport type ButtonBaseProps from './ButtonBaseProps';\n\nconst ORIGINAL_OPACITY = 1;\nconst ACTIVE_OPACITY = .65;\nconst DISABLED_OPACITY = .3;\n\nconst ORIGINAL_SCALE = 1;\nconst MINIFIED_SCALE = .96;\n\nconst animationTimingConfig: Animated.WithTimingConfig = { duration: 150 };\n\nconst styles = StyleSheet.create({\n disabled: {\n opacity: DISABLED_OPACITY,\n transform: [{ scale: ORIGINAL_SCALE }],\n },\n});\n\nexport default function ButtonBase(props: ButtonBaseProps) {\n const {\n children,\n disabled = false,\n disableThrottle = false,\n onPress,\n pressEffect = 'opacity',\n style,\n throttleMillis = 650,\n ...otherProps\n } = props;\n\n const handlePress = useThrottle({\n periodMillis: disableThrottle ? 0 : throttleMillis,\n callback: onPress,\n });\n\n const opacity = Animated.useSharedValue(ORIGINAL_OPACITY);\n const scale = Animated.useSharedValue(ORIGINAL_SCALE);\n\n const animatedStyle = Animated.useAnimatedStyle(() => ({\n opacity: opacity.value,\n transform: [{ scale: scale.value }],\n }));\n\n const startAnimation = (pressIn: boolean, isHovered: boolean = false) => {\n if (pressEffect === 'none') {\n return;\n }\n\n if (pressEffect === 'opacity') {\n if (pressIn) {\n opacity.value = ACTIVE_OPACITY;\n } else {\n opacity.value = Animated.withTiming(ORIGINAL_OPACITY, animationTimingConfig);\n }\n } else if (!isHovered) {\n if (pressIn) {\n scale.value = Animated.withDelay(\n 100,\n Animated.withTiming(MINIFIED_SCALE, animationTimingConfig),\n );\n } else {\n scale.value = Animated.withTiming(ORIGINAL_SCALE, animationTimingConfig);\n }\n }\n };\n\n return (\n <AnimatedPressable\n disabled={disabled}\n onPress={handlePress}\n onPressIn={() => startAnimation(true)}\n onPressOut={() => startAnimation(false)}\n style={[\n animatedStyle,\n disabled ? styles.disabled : undefined,\n style,\n ]}\n {...otherProps}\n >\n {typeof children !== 'function' ? (\n ({ hovered }) => {\n if (hovered !== undefined && !disabled) {\n startAnimation(hovered, true);\n }\n\n return children;\n }\n ) : children}\n </AnimatedPressable>\n );\n};\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import Animated, { Easing
|
|
2
|
+
import Animated, { Easing } from 'react-native-reanimated';
|
|
3
3
|
import { CircularProgress as CircularProgressIcon } from '../internal/icons';
|
|
4
4
|
import { css } from '../styles';
|
|
5
5
|
|
|
@@ -18,9 +18,9 @@ export default function CircularProgress(props) {
|
|
|
18
18
|
} = props;
|
|
19
19
|
const styles = useStyles();
|
|
20
20
|
const rootStyle = css([styles.root, style]);
|
|
21
|
-
const sharedSpin = useSharedValue(0);
|
|
22
|
-
const spinStyle = useAnimatedStyle(() => {
|
|
23
|
-
const interpolatedSpin = interpolate(sharedSpin.value, [0, 1], [0, 360]);
|
|
21
|
+
const sharedSpin = Animated.useSharedValue(0);
|
|
22
|
+
const spinStyle = Animated.useAnimatedStyle(() => {
|
|
23
|
+
const interpolatedSpin = Animated.interpolate(sharedSpin.value, [0, 1], [0, 360]);
|
|
24
24
|
return {
|
|
25
25
|
transform: [{
|
|
26
26
|
rotate: `${interpolatedSpin}deg`
|
|
@@ -28,7 +28,7 @@ export default function CircularProgress(props) {
|
|
|
28
28
|
};
|
|
29
29
|
});
|
|
30
30
|
React.useEffect(() => {
|
|
31
|
-
sharedSpin.value = withRepeat(withTiming(1, {
|
|
31
|
+
sharedSpin.value = Animated.withRepeat(Animated.withTiming(1, {
|
|
32
32
|
duration: 900,
|
|
33
33
|
easing: Easing.linear
|
|
34
34
|
}), -1, false);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["CircularProgress.tsx"],"names":["React","Animated","Easing","
|
|
1
|
+
{"version":3,"sources":["CircularProgress.tsx"],"names":["React","Animated","Easing","CircularProgress","CircularProgressIcon","css","useStyles","root","alignItems","justifyContent","props","style","styles","rootStyle","sharedSpin","useSharedValue","spinStyle","useAnimatedStyle","interpolatedSpin","interpolate","value","transform","rotate","useEffect","withRepeat","withTiming","duration","easing","linear"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AAGA,OAAOC,QAAP,IAAmBC,MAAnB,QAAiC,yBAAjC;AACA,SAASC,gBAAgB,IAAIC,oBAA7B,QAAyD,mBAAzD;AACA,SAASC,GAAT,QAAoB,WAApB;;AAKA,MAAMC,SAA4C,GAAG,YAAoC;AACrF,SAAO;AACHC,IAAAA,IAAI,EAAE;AACFC,MAAAA,UAAU,EAAE,QADV;AAEFC,MAAAA,cAAc,EAAE;AAFd;AADH,GAAP;AAMH,CAPD;;AASA,eAAe,SAASN,gBAAT,CAA0BO,KAA1B,EAAuE;AAClF,QAAM;AAAEC,IAAAA;AAAF,MAAYD,KAAlB;AAEA,QAAME,MAAM,GAAGN,SAAS,EAAxB;AAEA,QAAMO,SAAS,GAAGR,GAAG,CAAC,CAClBO,MAAM,CAACL,IADW,EAElBI,KAFkB,CAAD,CAArB;AAKA,QAAMG,UAAU,GAAGb,QAAQ,CAACc,cAAT,CAAwB,CAAxB,CAAnB;AAEA,QAAMC,SAAS,GAAGf,QAAQ,CAACgB,gBAAT,CAA0B,MAAM;AAC9C,UAAMC,gBAAgB,GAAGjB,QAAQ,CAACkB,WAAT,CAAqBL,UAAU,CAACM,KAAhC,EAAuC,CAAC,CAAD,EAAI,CAAJ,CAAvC,EAA+C,CAAC,CAAD,EAAI,GAAJ,CAA/C,CAAzB;AAEA,WAAO;AACHC,MAAAA,SAAS,EAAE,CAAC;AAAEC,QAAAA,MAAM,EAAG,GAAEJ,gBAAiB;AAA9B,OAAD;AADR,KAAP;AAGH,GANiB,CAAlB;AAQAlB,EAAAA,KAAK,CAACuB,SAAN,CAAgB,MAAM;AAClBT,IAAAA,UAAU,CAACM,KAAX,GAAmBnB,QAAQ,CAACuB,UAAT,CACfvB,QAAQ,CAACwB,UAAT,CAAoB,CAApB,EAAuB;AAAEC,MAAAA,QAAQ,EAAE,GAAZ;AAAiBC,MAAAA,MAAM,EAAEzB,MAAM,CAAC0B;AAAhC,KAAvB,CADe,EAEf,CAAC,CAFc,EAGf,KAHe,CAAnB;AAKH,GAND,EAMG,EANH;AAQA,sBACI,oBAAC,QAAD,CAAU,IAAV;AAAe,IAAA,KAAK,EAAE,CAACZ,SAAD,EAAYH,SAAZ;AAAtB,kBACI,oBAAC,oBAAD,OADJ,CADJ;AAKH;AAAA","sourcesContent":["import React from 'react';\nimport { ViewProps } from 'react-native';\nimport { NamedStylesStringUnion, UseStyles } from '@fountain-ui/styles';\nimport Animated, { Easing } from 'react-native-reanimated';\nimport { CircularProgress as CircularProgressIcon } from '../internal/icons';\nimport { css } from '../styles';\nimport { OverridableComponentProps } from '../types';\n\ntype CircularProgressStyles = NamedStylesStringUnion<'root'>;\n\nconst useStyles: UseStyles<CircularProgressStyles> = function (): CircularProgressStyles {\n return {\n root: {\n alignItems: 'center',\n justifyContent: 'center',\n },\n };\n};\n\nexport default function CircularProgress(props: OverridableComponentProps<ViewProps>) {\n const { style } = props;\n\n const styles = useStyles();\n\n const rootStyle = css([\n styles.root,\n style,\n ]);\n\n const sharedSpin = Animated.useSharedValue(0);\n\n const spinStyle = Animated.useAnimatedStyle(() => {\n const interpolatedSpin = Animated.interpolate(sharedSpin.value, [0, 1], [0, 360]);\n\n return {\n transform: [{ rotate: `${interpolatedSpin}deg` }],\n };\n });\n\n React.useEffect(() => {\n sharedSpin.value = Animated.withRepeat(\n Animated.withTiming(1, { duration: 900, easing: Easing.linear }),\n -1,\n false,\n );\n }, []);\n\n return (\n <Animated.View style={[spinStyle, rootStyle]}>\n <CircularProgressIcon/>\n </Animated.View>\n );\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Snackbar.tsx"],"names":["React","View","useSafeAreaInsets","css","Slide","SnackbarContent","useTheme","useStyles","theme","insets","root","alignSelf","bottom","spacing","maxWidth","paddingBottom","paddingHorizontal","position","width","Snackbar","props","animatedY","autoHideDuration","children","message","onClose","style","visible","otherProps","autoHideTimer","useRef","clearAutoHideTimeout","current","clearTimeout","useEffect","setTimeout","styles","exited","setExited","useState"],"mappings":";;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,IAAT,QAAqB,cAArB;AACA,SAASC,iBAAT,QAAkC,gCAAlC;AACA,SAASC,GAAT,QAAuD,qBAAvD;AACA,OAAOC,KAAP,MAAkB,UAAlB;AACA,OAAOC,eAAP,MAA4B,oBAA5B;AACA,SAASC,QAAT,QAAyB,WAAzB;;AAKA,MAAMC,SAAoC,GAAG,YAA4B;AACrE,QAAMC,KAAK,GAAGF,QAAQ,EAAtB;AACA,QAAMG,MAAM,GAAGP,iBAAiB,EAAhC;AAEA,SAAO;AACHQ,IAAAA,IAAI,EAAE;AACFC,MAAAA,SAAS,EAAE,QADT;AAEFC,MAAAA,MAAM,EAAEJ,KAAK,CAACK,OAAN,CAAc,CAAd,CAFN;AAGFC,MAAAA,QAAQ,EAAE,GAHR;AAIFC,MAAAA,aAAa,EAAEN,MAAM,CAACG,MAJpB;AAKFI,MAAAA,iBAAiB,EAAER,KAAK,CAACK,OAAN,CAAc,CAAd,CALjB;AAMFI,MAAAA,QAAQ,EAAE,UANR;AAOFC,MAAAA,KAAK,EAAE;
|
|
1
|
+
{"version":3,"sources":["Snackbar.tsx"],"names":["React","View","useSafeAreaInsets","css","Slide","SnackbarContent","useTheme","useStyles","theme","insets","root","alignSelf","bottom","spacing","maxWidth","paddingBottom","paddingHorizontal","position","width","zIndex","Snackbar","props","animatedY","autoHideDuration","children","message","onClose","style","visible","otherProps","autoHideTimer","useRef","clearAutoHideTimeout","current","clearTimeout","useEffect","setTimeout","styles","exited","setExited","useState"],"mappings":";;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,IAAT,QAAqB,cAArB;AACA,SAASC,iBAAT,QAAkC,gCAAlC;AACA,SAASC,GAAT,QAAuD,qBAAvD;AACA,OAAOC,KAAP,MAAkB,UAAlB;AACA,OAAOC,eAAP,MAA4B,oBAA5B;AACA,SAASC,QAAT,QAAyB,WAAzB;;AAKA,MAAMC,SAAoC,GAAG,YAA4B;AACrE,QAAMC,KAAK,GAAGF,QAAQ,EAAtB;AACA,QAAMG,MAAM,GAAGP,iBAAiB,EAAhC;AAEA,SAAO;AACHQ,IAAAA,IAAI,EAAE;AACFC,MAAAA,SAAS,EAAE,QADT;AAEFC,MAAAA,MAAM,EAAEJ,KAAK,CAACK,OAAN,CAAc,CAAd,CAFN;AAGFC,MAAAA,QAAQ,EAAE,GAHR;AAIFC,MAAAA,aAAa,EAAEN,MAAM,CAACG,MAJpB;AAKFI,MAAAA,iBAAiB,EAAER,KAAK,CAACK,OAAN,CAAc,CAAd,CALjB;AAMFI,MAAAA,QAAQ,EAAE,UANR;AAOFC,MAAAA,KAAK,EAAE,MAPL;AAQF;AACAC,MAAAA,MAAM,EAAE;AATN;AADH,GAAP;AAaH,CAjBD;;AAmBA,eAAe,SAASC,QAAT,CAAkBC,KAAlB,EAAwC;AACnD,QAAM;AACFC,IAAAA,SADE;AAEFC,IAAAA,gBAAgB,GAAG,IAFjB;AAGFC,IAAAA,QAHE;AAIFC,IAAAA,OAJE;AAKFC,IAAAA,OALE;AAMFC,IAAAA,KANE;AAOFC,IAAAA,OAAO,GAAG,KAPR;AAQF,OAAGC;AARD,MASFR,KATJ;AAWA,QAAMS,aAAa,GAAG9B,KAAK,CAAC+B,MAAN,CAA4B,IAA5B,CAAtB;;AAEA,QAAMC,oBAAoB,GAAG,MAAM;AAC/B,QAAIF,aAAa,CAACG,OAAd,KAA0B,IAA9B,EAAoC;AAChCC,MAAAA,YAAY,CAACJ,aAAa,CAACG,OAAf,CAAZ;AACH;AACJ,GAJD;;AAMAjC,EAAAA,KAAK,CAACmC,SAAN,CAAgB,MAAM;AAClB,WAAO,MAAM;AACTH,MAAAA,oBAAoB;AACvB,KAFD;AAGH,GAJD,EAIG,EAJH;AAMAhC,EAAAA,KAAK,CAACmC,SAAN,CAAgB,MAAM;AAClB,QAAIP,OAAO,IAAIL,gBAAgB,KAAK,IAApC,EAA0C;AACtCS,MAAAA,oBAAoB,GADkB,CAGtC;;AACAF,MAAAA,aAAa,CAACG,OAAd,GAAwBG,UAAU,CAAC,MAAM;AACrC,YAAIV,OAAJ,EAAa;AACTA,UAAAA,OAAO;AACV;AACJ,OAJiC,EAI/BH,gBAJ+B,CAAlC;AAKH;AACJ,GAXD,EAWG,CAACK,OAAD,EAAUL,gBAAV,EAA4BG,OAA5B,CAXH;AAaA,QAAMW,MAAM,GAAG9B,SAAS,EAAxB;AAEA,QAAM,CAAC+B,MAAD,EAASC,SAAT,IAAsBvC,KAAK,CAACwC,QAAN,CAAe,IAAf,CAA5B;;AAEA,MAAI,CAACZ,OAAD,IAAYU,MAAhB,EAAwB;AACpB,WAAO,IAAP;AACH;;AAED,sBACI,oBAAC,IAAD;AACI,IAAA,KAAK,EAAEnC,GAAG,CAAC,CACPkC,MAAM,CAAC3B,IADA,EAEPiB,KAFO,CAAD;AADd,KAKQE,UALR,gBAOI,oBAAC,KAAD;AACI,IAAA,SAAS,EAAEP,SADf;AAEI,IAAA,MAAM,EAAEM,OAFZ;AAGI,IAAA,OAAO,EAAE,MAAMW,SAAS,CAAC,KAAD,CAH5B;AAII,IAAA,QAAQ,EAAE,MAAMA,SAAS,CAAC,IAAD;AAJ7B,KAMKf,QAAQ,GAAGA,QAAH,gBACL,oBAAC,eAAD;AAAiB,IAAA,OAAO,EAAEC;AAA1B,IAPR,CAPJ,CADJ;AAoBH;AAAA","sourcesContent":["import React from 'react';\nimport { View } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\nimport { css, NamedStylesStringUnion, UseStyles } from '@fountain-ui/styles';\nimport Slide from '../Slide';\nimport SnackbarContent from '../SnackbarContent';\nimport { useTheme } from '../styles';\nimport type SnackbarProps from './SnackbarProps';\n\ntype SnackBarStyles = NamedStylesStringUnion<'root'>;\n\nconst useStyles: UseStyles<SnackBarStyles> = function (): SnackBarStyles {\n const theme = useTheme();\n const insets = useSafeAreaInsets();\n\n return {\n root: {\n alignSelf: 'center',\n bottom: theme.spacing(2),\n maxWidth: 480,\n paddingBottom: insets.bottom,\n paddingHorizontal: theme.spacing(2),\n position: 'absolute',\n width: '100%',\n // TODO: Need to remove zIndex.\n zIndex: 32,\n },\n };\n};\n\nexport default function Snackbar(props: SnackbarProps) {\n const {\n animatedY,\n autoHideDuration = null,\n children,\n message,\n onClose,\n style,\n visible = false,\n ...otherProps\n } = props;\n\n const autoHideTimer = React.useRef<number | null>(null);\n\n const clearAutoHideTimeout = () => {\n if (autoHideTimer.current !== null) {\n clearTimeout(autoHideTimer.current);\n }\n };\n\n React.useEffect(() => {\n return () => {\n clearAutoHideTimeout();\n };\n }, []);\n\n React.useEffect(() => {\n if (visible && autoHideDuration !== null) {\n clearAutoHideTimeout();\n\n // @ts-ignore\n autoHideTimer.current = setTimeout(() => {\n if (onClose) {\n onClose();\n }\n }, autoHideDuration);\n }\n }, [visible, autoHideDuration, onClose]);\n\n const styles = useStyles();\n\n const [exited, setExited] = React.useState(true);\n\n if (!visible && exited) {\n return null;\n }\n\n return (\n <View\n style={css([\n styles.root,\n style,\n ])}\n {...otherProps}\n >\n <Slide\n animatedY={animatedY}\n appear={visible}\n onEnter={() => setExited(false)}\n onExited={() => setExited(true)}\n >\n {children ? children : (\n <SnackbarContent message={message}/>\n )}\n </Slide>\n </View>\n );\n};\n"]}
|
package/build/module/Tab/Tab.js
CHANGED
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
2
2
|
|
|
3
3
|
import React from 'react';
|
|
4
|
-
import { Text } from 'react-native';
|
|
4
|
+
import { Platform, Text } from 'react-native';
|
|
5
5
|
import Badge from '../Badge';
|
|
6
6
|
import TabBase from '../TabBase';
|
|
7
7
|
import { createFontStyle, css, StyleSheet, useTheme } from '../styles';
|
|
8
8
|
import TabIndicator from './TabIndicator';
|
|
9
9
|
const styles = StyleSheet.create({
|
|
10
|
+
root: { // TODO: Remove redundant platform checking
|
|
11
|
+
...(Platform.OS === 'web' ? {
|
|
12
|
+
minWidth: 'auto'
|
|
13
|
+
} : {})
|
|
14
|
+
},
|
|
10
15
|
primary: {
|
|
11
16
|
minHeight: 48
|
|
12
17
|
},
|
|
@@ -32,7 +37,7 @@ export default function Tab(props) {
|
|
|
32
37
|
const theme = useTheme();
|
|
33
38
|
const vertical = variant === 'bottom-navigation';
|
|
34
39
|
const color = selected ? theme.palette.text.primary : theme.palette.text.hint;
|
|
35
|
-
const tabBaseStyle = css([variant === 'primary' ? styles.primary : variant === 'secondary' ? styles.secondary : styles.bottomNavigation, style]);
|
|
40
|
+
const tabBaseStyle = css([styles.root, variant === 'primary' ? styles.primary : variant === 'secondary' ? styles.secondary : styles.bottomNavigation, style]);
|
|
36
41
|
const fontStyle = createFontStyle(theme, {
|
|
37
42
|
selector: typo => variant === 'primary' ? typo.h2 : variant === 'secondary' ? typo.button2 : typo.flag,
|
|
38
43
|
color
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Tab.tsx"],"names":["React","Text","Badge","TabBase","createFontStyle","css","StyleSheet","useTheme","TabIndicator","styles","create","primary","minHeight","secondary","bottomNavigation","Tab","props","badgeVisible","children","enableIndicator","icon","defaultIcon","selected","selectedIcon","variant","style","otherProps","theme","vertical","color","palette","text","hint","tabBaseStyle","fontStyle","selector","typo","h2","button2","flag","iconElement","cloneElement","fill"],"mappings":";;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,
|
|
1
|
+
{"version":3,"sources":["Tab.tsx"],"names":["React","Platform","Text","Badge","TabBase","createFontStyle","css","StyleSheet","useTheme","TabIndicator","styles","create","root","OS","minWidth","primary","minHeight","secondary","bottomNavigation","Tab","props","badgeVisible","children","enableIndicator","icon","defaultIcon","selected","selectedIcon","variant","style","otherProps","theme","vertical","color","palette","text","hint","tabBaseStyle","fontStyle","selector","typo","h2","button2","flag","iconElement","cloneElement","fill"],"mappings":";;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,QAAT,EAAmBC,IAAnB,QAA+B,cAA/B;AACA,OAAOC,KAAP,MAAkB,UAAlB;AACA,OAAOC,OAAP,MAAoB,YAApB;AAEA,SAASC,eAAT,EAA0BC,GAA1B,EAA+BC,UAA/B,EAA2CC,QAA3C,QAA2D,WAA3D;AACA,OAAOC,YAAP,MAAyB,gBAAzB;AAEA,MAAMC,MAAM,GAAGH,UAAU,CAACI,MAAX,CAAkB;AAC7BC,EAAAA,IAAI,EAAE,EACF;AACA,QAAIX,QAAQ,CAACY,EAAT,KAAgB,KAAhB,GAAwB;AAAEC,MAAAA,QAAQ,EAAE;AAAZ,KAAxB,GAA+C,EAAnD;AAFE,GADuB;AAK7BC,EAAAA,OAAO,EAAE;AACLC,IAAAA,SAAS,EAAE;AADN,GALoB;AAQ7BC,EAAAA,SAAS,EAAE;AACPD,IAAAA,SAAS,EAAE;AADJ,GARkB;AAW7BE,EAAAA,gBAAgB,EAAE;AACdF,IAAAA,SAAS,EAAE;AADG;AAXW,CAAlB,CAAf;AAgBA,eAAe,SAASG,GAAT,CAAaC,KAAb,EAA8B;AACzC,QAAM;AACFC,IAAAA,YAAY,GAAG,KADb;AAEFC,IAAAA,QAFE;AAGFC,IAAAA,eAHE;AAIFC,IAAAA,IAAI,EAAEC,WAJJ;AAKFC,IAAAA,QALE;AAMFC,IAAAA,YANE;AAOFC,IAAAA,OAAO,GAAG,SAPR;AAQFC,IAAAA,KARE;AASF,OAAGC;AATD,MAUFV,KAVJ;AAYA,QAAMW,KAAK,GAAGvB,QAAQ,EAAtB;AAEA,QAAMwB,QAAQ,GAAGJ,OAAO,KAAK,mBAA7B;AAEA,QAAMK,KAAK,GAAGP,QAAQ,GAAGK,KAAK,CAACG,OAAN,CAAcC,IAAd,CAAmBpB,OAAtB,GAAgCgB,KAAK,CAACG,OAAN,CAAcC,IAAd,CAAmBC,IAAzE;AAEA,QAAMC,YAAY,GAAG/B,GAAG,CAAC,CACrBI,MAAM,CAACE,IADc,EAErBgB,OAAO,KAAK,SAAZ,GACMlB,MAAM,CAACK,OADb,GAEOa,OAAO,KAAK,WAAZ,GAA0BlB,MAAM,CAACO,SAAjC,GAA6CP,MAAM,CAACQ,gBAJtC,EAKrBW,KALqB,CAAD,CAAxB;AAQA,QAAMS,SAAS,GAAGjC,eAAe,CAAC0B,KAAD,EAAQ;AACrCQ,IAAAA,QAAQ,EAAGC,IAAD,IAAUZ,OAAO,KAAK,SAAZ,GACdY,IAAI,CAACC,EADS,GAEbb,OAAO,KAAK,WAAZ,GAA0BY,IAAI,CAACE,OAA/B,GAAyCF,IAAI,CAACG,IAHhB;AAIrCV,IAAAA;AAJqC,GAAR,CAAjC;AAOA,QAAMT,IAAI,GAAGE,QAAQ,GAAIC,YAAY,IAAIF,WAApB,GAAmCA,WAAxD;AACA,QAAMmB,WAAW,GAAGpB,IAAI,gBAAGxB,KAAK,CAAC6C,YAAN,CAAmBrB,IAAnB,EAAyB;AAAEsB,IAAAA,IAAI,EAAEb;AAAR,GAAzB,CAAH,GAA+C,IAAvE;AAEA,sBACI,oBAAC,OAAD;AACI,IAAA,QAAQ,EAAED,QADd;AAEI,IAAA,KAAK,EAAEK;AAFX,KAGQP,UAHR,gBAKI,oBAAC,KAAD;AACI,IAAA,QAAQ,EAAEc,WADd;AAEI,IAAA,SAAS,EAAE,CAACvB;AAFhB,IALJ,eAUI,oBAAC,IAAD;AACI,IAAA,QAAQ,EAAEC,QADd;AAEI,IAAA,KAAK,EAAEhB,GAAG,CAACgC,SAAD;AAFd,IAVJ,EAeKf,eAAe,gBAAG,oBAAC,YAAD,OAAH,GAAqB,IAfzC,CADJ;AAmBH;AAAA","sourcesContent":["import React from 'react';\nimport { Platform, Text } from 'react-native';\nimport Badge from '../Badge';\nimport TabBase from '../TabBase';\nimport type TabProps from './TabProps';\nimport { createFontStyle, css, StyleSheet, useTheme } from '../styles';\nimport TabIndicator from './TabIndicator';\n\nconst styles = StyleSheet.create({\n root: {\n // TODO: Remove redundant platform checking\n ...(Platform.OS === 'web' ? { minWidth: 'auto' } : {}),\n },\n primary: {\n minHeight: 48,\n },\n secondary: {\n minHeight: 48,\n },\n bottomNavigation: {\n minHeight: 56,\n },\n});\n\nexport default function Tab(props: TabProps) {\n const {\n badgeVisible = false,\n children,\n enableIndicator,\n icon: defaultIcon,\n selected,\n selectedIcon,\n variant = 'primary',\n style,\n ...otherProps\n } = props;\n\n const theme = useTheme();\n\n const vertical = variant === 'bottom-navigation';\n\n const color = selected ? theme.palette.text.primary : theme.palette.text.hint;\n\n const tabBaseStyle = css([\n styles.root,\n variant === 'primary'\n ? styles.primary\n : (variant === 'secondary' ? styles.secondary : styles.bottomNavigation),\n style,\n ]);\n\n const fontStyle = createFontStyle(theme, {\n selector: (typo) => variant === 'primary'\n ? typo.h2\n : (variant === 'secondary' ? typo.button2 : typo.flag),\n color,\n });\n\n const icon = selected ? (selectedIcon || defaultIcon) : defaultIcon;\n const iconElement = icon ? React.cloneElement(icon, { fill: color }) : null;\n\n return (\n <TabBase\n vertical={vertical}\n style={tabBaseStyle}\n {...otherProps}\n >\n <Badge\n children={iconElement}\n invisible={!badgeVisible}\n />\n\n <Text\n children={children}\n style={css(fontStyle)}\n />\n\n {enableIndicator ? <TabIndicator/> : null}\n </TabBase>\n );\n};\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fountain-ui/core",
|
|
3
|
-
"version": "1.11.
|
|
3
|
+
"version": "1.11.10",
|
|
4
4
|
"author": "Fountain-UI Team",
|
|
5
5
|
"description": "React components that implement Tappytoon's Fountain Design.",
|
|
6
6
|
"license": "MIT",
|
|
@@ -67,5 +67,5 @@
|
|
|
67
67
|
"publishConfig": {
|
|
68
68
|
"access": "public"
|
|
69
69
|
},
|
|
70
|
-
"gitHead": "
|
|
70
|
+
"gitHead": "85c458eb73df73c22a531c6b6d71bda8ca06e28f"
|
|
71
71
|
}
|
|
@@ -1,14 +1,25 @@
|
|
|
1
1
|
import React, { useState } from 'react';
|
|
2
|
-
import Animated
|
|
2
|
+
import Animated from 'react-native-reanimated';
|
|
3
3
|
import { NamedStylesStringUnion, UseStyles } from '@fountain-ui/styles';
|
|
4
4
|
import { ChevronDown as ChevronDownIcon } from '../internal/icons';
|
|
5
5
|
import { ButtonBase, Column, Divider, Spacer, Typography, useTheme } from '../index';
|
|
6
6
|
import AccordionProps from './AccordionProps';
|
|
7
7
|
|
|
8
|
-
type AccordionStyles = NamedStylesStringUnion<'
|
|
8
|
+
type AccordionStyles = NamedStylesStringUnion<'root'>;
|
|
9
9
|
|
|
10
10
|
const ANIMATION_OPTION = { duration: 250 };
|
|
11
11
|
|
|
12
|
+
const useStyles: UseStyles<AccordionStyles> = function (): AccordionStyles {
|
|
13
|
+
const theme = useTheme();
|
|
14
|
+
|
|
15
|
+
return {
|
|
16
|
+
root: {
|
|
17
|
+
flexDirection: 'row',
|
|
18
|
+
paddingVertical: theme.spacing(3),
|
|
19
|
+
},
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
|
|
12
23
|
export default function Accordion(props: AccordionProps) {
|
|
13
24
|
const {
|
|
14
25
|
content,
|
|
@@ -17,39 +28,26 @@ export default function Accordion(props: AccordionProps) {
|
|
|
17
28
|
title,
|
|
18
29
|
titleVariant = 'subtitle2',
|
|
19
30
|
} = props;
|
|
20
|
-
const theme = useTheme();
|
|
21
|
-
|
|
22
|
-
const useStyles: UseStyles<AccordionStyles> = function (): AccordionStyles {
|
|
23
|
-
return {
|
|
24
|
-
buttonBase: {
|
|
25
|
-
flexDirection: 'row',
|
|
26
|
-
paddingVertical: theme.spacing(3),
|
|
27
|
-
},
|
|
28
|
-
};
|
|
29
|
-
};
|
|
30
31
|
|
|
31
32
|
const styles = useStyles();
|
|
32
|
-
const [isExpanded, setIsExpanded] = useState(false);
|
|
33
33
|
|
|
34
|
-
const
|
|
35
|
-
const
|
|
36
|
-
const rotate = isExpanded ? 180 : 0;
|
|
37
|
-
sharedRotate.value = withTiming(rotate, ANIMATION_OPTION);
|
|
34
|
+
const [isExpanded, setIsExpanded] = useState(false);
|
|
35
|
+
const rotate = Animated.useSharedValue(0);
|
|
38
36
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
});
|
|
37
|
+
const animatedChevronDownStyles = Animated.useAnimatedStyle(() => ({
|
|
38
|
+
transform: [{ rotate: `${rotate.value}deg` }],
|
|
39
|
+
}));
|
|
43
40
|
|
|
44
41
|
const onPress = () => {
|
|
45
|
-
setIsExpanded(!
|
|
42
|
+
setIsExpanded(prev => !prev);
|
|
43
|
+
rotate.value = Animated.withTiming(isExpanded ? 180 : 0, ANIMATION_OPTION);
|
|
46
44
|
};
|
|
47
45
|
|
|
48
46
|
return (
|
|
49
47
|
<Column>
|
|
50
48
|
<ButtonBase
|
|
51
49
|
onPress={onPress}
|
|
52
|
-
style={styles.
|
|
50
|
+
style={styles.root}
|
|
53
51
|
>
|
|
54
52
|
{LeftIcon ? (
|
|
55
53
|
<React.Fragment>
|
|
@@ -1,14 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { ViewProps } from 'react-native';
|
|
3
3
|
import { NamedStylesStringUnion, UseStyles } from '@fountain-ui/styles';
|
|
4
|
-
import Animated, {
|
|
5
|
-
Easing,
|
|
6
|
-
interpolate,
|
|
7
|
-
useAnimatedStyle,
|
|
8
|
-
useSharedValue,
|
|
9
|
-
withRepeat,
|
|
10
|
-
withTiming,
|
|
11
|
-
} from 'react-native-reanimated';
|
|
4
|
+
import Animated, { Easing } from 'react-native-reanimated';
|
|
12
5
|
import { CircularProgress as CircularProgressIcon } from '../internal/icons';
|
|
13
6
|
import { css } from '../styles';
|
|
14
7
|
import { OverridableComponentProps } from '../types';
|
|
@@ -34,10 +27,10 @@ export default function CircularProgress(props: OverridableComponentProps<ViewPr
|
|
|
34
27
|
style,
|
|
35
28
|
]);
|
|
36
29
|
|
|
37
|
-
const sharedSpin = useSharedValue(0);
|
|
30
|
+
const sharedSpin = Animated.useSharedValue(0);
|
|
38
31
|
|
|
39
|
-
const spinStyle = useAnimatedStyle(() => {
|
|
40
|
-
const interpolatedSpin = interpolate(sharedSpin.value, [0, 1], [0, 360]);
|
|
32
|
+
const spinStyle = Animated.useAnimatedStyle(() => {
|
|
33
|
+
const interpolatedSpin = Animated.interpolate(sharedSpin.value, [0, 1], [0, 360]);
|
|
41
34
|
|
|
42
35
|
return {
|
|
43
36
|
transform: [{ rotate: `${interpolatedSpin}deg` }],
|
|
@@ -45,8 +38,8 @@ export default function CircularProgress(props: OverridableComponentProps<ViewPr
|
|
|
45
38
|
});
|
|
46
39
|
|
|
47
40
|
React.useEffect(() => {
|
|
48
|
-
sharedSpin.value = withRepeat(
|
|
49
|
-
withTiming(1, { duration: 900, easing: Easing.linear }),
|
|
41
|
+
sharedSpin.value = Animated.withRepeat(
|
|
42
|
+
Animated.withTiming(1, { duration: 900, easing: Easing.linear }),
|
|
50
43
|
-1,
|
|
51
44
|
false,
|
|
52
45
|
);
|
package/src/Tab/Tab.tsx
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { Text } from 'react-native';
|
|
2
|
+
import { Platform, Text } from 'react-native';
|
|
3
3
|
import Badge from '../Badge';
|
|
4
4
|
import TabBase from '../TabBase';
|
|
5
5
|
import type TabProps from './TabProps';
|
|
@@ -7,6 +7,10 @@ import { createFontStyle, css, StyleSheet, useTheme } from '../styles';
|
|
|
7
7
|
import TabIndicator from './TabIndicator';
|
|
8
8
|
|
|
9
9
|
const styles = StyleSheet.create({
|
|
10
|
+
root: {
|
|
11
|
+
// TODO: Remove redundant platform checking
|
|
12
|
+
...(Platform.OS === 'web' ? { minWidth: 'auto' } : {}),
|
|
13
|
+
},
|
|
10
14
|
primary: {
|
|
11
15
|
minHeight: 48,
|
|
12
16
|
},
|
|
@@ -38,6 +42,7 @@ export default function Tab(props: TabProps) {
|
|
|
38
42
|
const color = selected ? theme.palette.text.primary : theme.palette.text.hint;
|
|
39
43
|
|
|
40
44
|
const tabBaseStyle = css([
|
|
45
|
+
styles.root,
|
|
41
46
|
variant === 'primary'
|
|
42
47
|
? styles.primary
|
|
43
48
|
: (variant === 'secondary' ? styles.secondary : styles.bottomNavigation),
|