@fountain-ui/core 2.0.0-beta.81 → 2.0.0-beta.83

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.
Files changed (53) hide show
  1. package/build/commonjs/Accordion/Accordion.js +14 -18
  2. package/build/commonjs/Accordion/Accordion.js.map +1 -1
  3. package/build/commonjs/Dialog/Dialog.js +59 -31
  4. package/build/commonjs/Dialog/Dialog.js.map +1 -1
  5. package/build/commonjs/Dialog/DialogProps.js.map +1 -1
  6. package/build/commonjs/Modal/AnimatedContainer/index.js +153 -0
  7. package/build/commonjs/Modal/AnimatedContainer/index.js.map +1 -0
  8. package/build/commonjs/Modal/Modal.js +41 -15
  9. package/build/commonjs/Modal/Modal.js.map +1 -1
  10. package/build/commonjs/Modal/ModalProps.js +12 -0
  11. package/build/commonjs/Modal/ModalProps.js.map +1 -1
  12. package/build/commonjs/Modal/index.js +8 -0
  13. package/build/commonjs/Modal/index.js.map +1 -1
  14. package/build/commonjs/Tab/Tab.js +1 -0
  15. package/build/commonjs/Tab/Tab.js.map +1 -1
  16. package/build/commonjs/Tabs/Tabs.js +2 -1
  17. package/build/commonjs/Tabs/Tabs.js.map +1 -1
  18. package/build/commonjs/Tabs/TabsProps.js.map +1 -1
  19. package/build/module/Accordion/Accordion.js +14 -18
  20. package/build/module/Accordion/Accordion.js.map +1 -1
  21. package/build/module/Dialog/Dialog.js +61 -31
  22. package/build/module/Dialog/Dialog.js.map +1 -1
  23. package/build/module/Dialog/DialogProps.js.map +1 -1
  24. package/build/module/Modal/AnimatedContainer/index.js +131 -0
  25. package/build/module/Modal/AnimatedContainer/index.js.map +1 -0
  26. package/build/module/Modal/Modal.js +41 -14
  27. package/build/module/Modal/Modal.js.map +1 -1
  28. package/build/module/Modal/ModalProps.js +5 -0
  29. package/build/module/Modal/ModalProps.js.map +1 -1
  30. package/build/module/Modal/index.js +1 -0
  31. package/build/module/Modal/index.js.map +1 -1
  32. package/build/module/Tab/Tab.js +1 -0
  33. package/build/module/Tab/Tab.js.map +1 -1
  34. package/build/module/Tabs/Tabs.js +2 -1
  35. package/build/module/Tabs/Tabs.js.map +1 -1
  36. package/build/module/Tabs/TabsProps.js.map +1 -1
  37. package/build/typescript/Dialog/DialogProps.d.ts +6 -0
  38. package/build/typescript/Modal/AnimatedContainer/index.d.ts +5 -0
  39. package/build/typescript/Modal/ModalProps.d.ts +41 -8
  40. package/build/typescript/Modal/index.d.ts +2 -1
  41. package/build/typescript/Tabs/Tabs.d.ts +1 -1
  42. package/build/typescript/Tabs/TabsProps.d.ts +5 -0
  43. package/package.json +2 -2
  44. package/src/Accordion/Accordion.tsx +13 -14
  45. package/src/Dialog/Dialog.tsx +70 -32
  46. package/src/Dialog/DialogProps.ts +7 -0
  47. package/src/Modal/AnimatedContainer/index.tsx +156 -0
  48. package/src/Modal/Modal.tsx +42 -18
  49. package/src/Modal/ModalProps.ts +51 -10
  50. package/src/Modal/index.ts +2 -1
  51. package/src/Tab/Tab.tsx +1 -0
  52. package/src/Tabs/Tabs.tsx +5 -1
  53. package/src/Tabs/TabsProps.ts +6 -0
@@ -31,26 +31,27 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
31
31
 
32
32
  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; }
33
33
 
34
- const CONTENT_Y_START = 30;
35
- const CONTENT_Y_END = 0;
36
34
  const ROTATE_HIDE_DEGREE = 0;
37
35
  const ROTATE_SHOW_DEGREE = 180;
38
36
  const ANIMATION_CONFIG = {
39
- duration: 300
37
+ duration: 200
40
38
  };
39
+ const INITIAL_EXPANDED_DELAY_MILLIS = 100;
40
+ const CONTENT_OPACITY_DELAY_MILLIS = 200;
41
41
 
42
42
  const useStyles = function () {
43
43
  const theme = (0, _styles.useTheme)();
44
44
  return {
45
45
  root: {
46
- marginBottom: theme.spacing(2)
46
+ marginBottom: theme.spacing(3)
47
47
  },
48
48
  title: {
49
49
  borderRadius: theme.spacing(4),
50
50
  backgroundColor: theme.palette.paper.grey,
51
51
  paddingHorizontal: theme.spacing(4),
52
52
  paddingVertical: theme.spacing(3.5),
53
- alignItems: 'center'
53
+ alignItems: 'center',
54
+ height: 64
54
55
  },
55
56
  titleColumn: {
56
57
  flexShrink: 1
@@ -67,7 +68,7 @@ const useStyles = function () {
67
68
  backgroundColor: theme.palette.paper.grey,
68
69
  paddingHorizontal: theme.spacing(4),
69
70
  paddingVertical: theme.spacing(6),
70
- marginTop: theme.spacing(2)
71
+ marginTop: theme.spacing(1)
71
72
  }
72
73
  };
73
74
  };
@@ -88,7 +89,6 @@ function Accordion(props) {
88
89
  const shouldInitialExpandedRef = (0, _react.useRef)(isInitialExpanded);
89
90
  const rotate = (0, _reactNativeReanimated.useSharedValue)(ROTATE_HIDE_DEGREE);
90
91
  const animatedOpacity = (0, _reactNativeReanimated.useSharedValue)(0);
91
- const animatedContentY = (0, _reactNativeReanimated.useSharedValue)(CONTENT_Y_START);
92
92
  const animatedHeight = (0, _reactNativeReanimated.useSharedValue)(0);
93
93
  const [contentHeight, setContentHeight] = (0, _react.useState)(0);
94
94
  const animatedChevronDownStyles = (0, _reactNativeReanimated.useAnimatedStyle)(() => ({
@@ -98,13 +98,9 @@ function Accordion(props) {
98
98
  }), []);
99
99
  const animatedContentBackgroundStyles = (0, _reactNativeReanimated.useAnimatedStyle)(() => ({
100
100
  height: animatedHeight.value,
101
- opacity: animatedOpacity.value,
102
101
  overflow: 'hidden'
103
102
  }), []);
104
103
  const animatedContentStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => ({
105
- transform: [{
106
- translateY: animatedContentY.value
107
- }],
108
104
  opacity: animatedOpacity.value
109
105
  }), []);
110
106
 
@@ -118,17 +114,14 @@ function Accordion(props) {
118
114
 
119
115
  if (shouldInitialExpandedRef.current) {
120
116
  shouldInitialExpandedRef.current = false;
121
- setIsExpanded(true);
117
+ setTimeout(() => setIsExpanded(true), INITIAL_EXPANDED_DELAY_MILLIS);
122
118
  }
123
119
  };
124
120
 
125
121
  (0, _react.useEffect)(() => {
126
122
  rotate.value = (0, _reactNativeReanimated.withTiming)(isExpanded ? ROTATE_SHOW_DEGREE : ROTATE_HIDE_DEGREE, ANIMATION_CONFIG);
127
123
  animatedHeight.value = (0, _reactNativeReanimated.withTiming)(isExpanded ? contentHeight : 0, ANIMATION_CONFIG);
128
- animatedOpacity.value = (0, _reactNativeReanimated.withTiming)(isExpanded ? 1 : 0, ANIMATION_CONFIG);
129
- animatedContentY.value = isExpanded ? (0, _reactNativeReanimated.withTiming)(CONTENT_Y_END, ANIMATION_CONFIG) : (0, _reactNativeReanimated.withDelay)(ANIMATION_CONFIG.duration, (0, _reactNativeReanimated.withTiming)(CONTENT_Y_START, {
130
- duration: 0
131
- }));
124
+ animatedOpacity.value = isExpanded ? (0, _reactNativeReanimated.withDelay)(CONTENT_OPACITY_DELAY_MILLIS, (0, _reactNativeReanimated.withTiming)(1, ANIMATION_CONFIG)) : (0, _reactNativeReanimated.withTiming)(0, ANIMATION_CONFIG);
132
125
  }, [isExpanded, contentHeight]);
133
126
  return /*#__PURE__*/_react.default.createElement(_Column.default, {
134
127
  style: styles.root
@@ -142,13 +135,16 @@ function Accordion(props) {
142
135
  variant: 'subtitle2',
143
136
  children: title,
144
137
  color: 'textPrimary',
145
- numberOfLines: 1
138
+ numberOfLines: 1,
139
+ disableFontScaling: true
146
140
  }), subTitle ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Spacer.default, {
147
141
  size: 0.5
148
142
  }), /*#__PURE__*/_react.default.createElement(_Typography.default, {
149
143
  style: styles.subtitle,
150
144
  color: 'tertiary',
151
- children: subTitle
145
+ children: subTitle,
146
+ numberOfLines: 1,
147
+ disableFontScaling: true
152
148
  })) : null), /*#__PURE__*/_react.default.createElement(_Spacer.default, {
153
149
  flex: 1
154
150
  }), /*#__PURE__*/_react.default.createElement(_Spacer.default, {
@@ -1 +1 @@
1
- {"version":3,"names":["CONTENT_Y_START","CONTENT_Y_END","ROTATE_HIDE_DEGREE","ROTATE_SHOW_DEGREE","ANIMATION_CONFIG","duration","useStyles","theme","useTheme","root","marginBottom","spacing","title","borderRadius","backgroundColor","palette","paper","grey","paddingHorizontal","paddingVertical","alignItems","titleColumn","flexShrink","subtitle","fontSize","lineHeight","fontFamily","contentView","position","width","marginTop","Accordion","props","subTitle","content","RightIcon","LeftComponent","isInitialExpanded","styles","CONTENT_MARGIN_HEIGHT","isExpanded","setIsExpanded","useState","shouldInitialExpandedRef","useRef","rotate","useSharedValue","animatedOpacity","animatedContentY","animatedHeight","contentHeight","setContentHeight","animatedChevronDownStyles","useAnimatedStyle","transform","value","animatedContentBackgroundStyles","height","opacity","overflow","animatedContentStyle","translateY","onPress","prev","onLayout","event","nativeEvent","layout","current","useEffect","withTiming","withDelay"],"sources":["Accordion.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { LayoutChangeEvent, View } from 'react-native';\nimport Animated, {\n useAnimatedStyle,\n useSharedValue,\n withDelay,\n withTiming,\n WithTimingConfig,\n} from 'react-native-reanimated';\nimport { NamedStylesStringUnion, UseStyles } from '@fountain-ui/styles';\nimport { useTheme } from '../styles';\nimport { ChevronDown } from '../internal/icons';\nimport ButtonBase from '../ButtonBase';\nimport Column from '../Column';\nimport Row from '../Row';\nimport Spacer from '../Spacer';\nimport Typography from '../Typography';\n\nimport AccordionProps from './AccordionProps';\n\ntype AccordionStyles = NamedStylesStringUnion<\n 'root'\n | 'title'\n | 'titleColumn'\n | 'subtitle'\n | 'contentView'\n>;\n\nconst CONTENT_Y_START = 30;\nconst CONTENT_Y_END = 0;\n\nconst ROTATE_HIDE_DEGREE = 0;\nconst ROTATE_SHOW_DEGREE = 180;\nconst ANIMATION_CONFIG: Readonly<WithTimingConfig> = { duration: 300 };\n\nconst useStyles: UseStyles<AccordionStyles> = function (): AccordionStyles {\n const theme = useTheme();\n\n return {\n root: { marginBottom: theme.spacing(2) },\n title: {\n borderRadius: theme.spacing(4),\n backgroundColor: theme.palette.paper.grey,\n paddingHorizontal: theme.spacing(4),\n paddingVertical: theme.spacing(3.5),\n alignItems: 'center',\n },\n titleColumn: { flexShrink: 1 },\n subtitle: {\n fontSize: 11,\n lineHeight: 12,\n fontFamily: 'Inter-Regular',\n },\n contentView: {\n position: 'absolute',\n width: '100%',\n borderRadius: theme.spacing(4),\n backgroundColor: theme.palette.paper.grey,\n paddingHorizontal: theme.spacing(4),\n paddingVertical: theme.spacing(6),\n marginTop: theme.spacing(2),\n },\n };\n};\n\nexport default function Accordion(props: AccordionProps) {\n const {\n title,\n subTitle,\n content,\n RightIcon,\n LeftComponent,\n isInitialExpanded = false,\n } = props;\n\n const styles = useStyles();\n const theme = useTheme();\n const CONTENT_MARGIN_HEIGHT = theme.spacing(2);\n\n const [isExpanded, setIsExpanded] = useState(false);\n const shouldInitialExpandedRef = useRef<boolean>(isInitialExpanded);\n\n const rotate = useSharedValue(ROTATE_HIDE_DEGREE);\n const animatedOpacity = useSharedValue(0);\n const animatedContentY = useSharedValue(CONTENT_Y_START);\n\n const animatedHeight = useSharedValue(0);\n const [contentHeight, setContentHeight] = useState(0);\n\n const animatedChevronDownStyles = useAnimatedStyle(() => ({\n transform: [{ rotate: `${rotate.value}deg` }],\n }), []);\n\n const animatedContentBackgroundStyles = useAnimatedStyle(() => ({\n height: animatedHeight.value,\n opacity: animatedOpacity.value,\n overflow: 'hidden',\n }), []);\n\n const animatedContentStyle = useAnimatedStyle(() => ({\n transform: [{ translateY: animatedContentY.value }],\n opacity: animatedOpacity.value,\n }), []);\n\n const onPress = () => {\n setIsExpanded(prev => !prev);\n };\n\n const onLayout = (event: LayoutChangeEvent) => {\n const height = event.nativeEvent.layout.height + CONTENT_MARGIN_HEIGHT;\n setContentHeight(height);\n\n if (shouldInitialExpandedRef.current) {\n shouldInitialExpandedRef.current = false;\n setIsExpanded(true);\n }\n };\n\n useEffect(() => {\n rotate.value = withTiming(isExpanded ? ROTATE_SHOW_DEGREE : ROTATE_HIDE_DEGREE, ANIMATION_CONFIG);\n\n animatedHeight.value = withTiming(isExpanded ? contentHeight : 0, ANIMATION_CONFIG);\n animatedOpacity.value = withTiming(isExpanded ? 1 : 0, ANIMATION_CONFIG);\n\n animatedContentY.value = isExpanded\n ? withTiming(CONTENT_Y_END, ANIMATION_CONFIG)\n : withDelay(ANIMATION_CONFIG.duration as number, withTiming(CONTENT_Y_START, { duration: 0 }));\n }, [isExpanded, contentHeight]);\n\n return (\n <Column style={styles.root}>\n <ButtonBase onPress={onPress}>\n <Row style={styles.title}>\n {LeftComponent ? LeftComponent : null}\n\n <Column style={styles.titleColumn}>\n <Typography\n variant={'subtitle2'}\n children={title}\n color={'textPrimary'}\n numberOfLines={1}\n />\n\n {subTitle ? (\n <React.Fragment>\n <Spacer size={0.5}/>\n\n <Typography\n style={styles.subtitle}\n color={'tertiary'}\n children={subTitle}\n />\n </React.Fragment>\n ) : null}\n </Column>\n\n <Spacer flex={1}/>\n\n <Spacer size={3}/>\n\n <Animated.View style={animatedChevronDownStyles}>\n {RightIcon ? RightIcon : (\n <ChevronDown\n width={20}\n height={20}\n color={'tertiary'}\n />\n )}\n </Animated.View>\n </Row>\n </ButtonBase>\n\n <Animated.View style={animatedContentBackgroundStyles}>\n <View\n onLayout={onLayout}\n style={styles.contentView}\n >\n <Animated.View style={animatedContentStyle}>\n {typeof content === 'string' ? (\n <Typography\n variant={'subtitle2'}\n color={'tertiary'}\n children={content}\n />\n ) : (content)}\n </Animated.View>\n </View>\n </Animated.View>\n </Column>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["ROTATE_HIDE_DEGREE","ROTATE_SHOW_DEGREE","ANIMATION_CONFIG","duration","INITIAL_EXPANDED_DELAY_MILLIS","CONTENT_OPACITY_DELAY_MILLIS","useStyles","theme","useTheme","root","marginBottom","spacing","title","borderRadius","backgroundColor","palette","paper","grey","paddingHorizontal","paddingVertical","alignItems","height","titleColumn","flexShrink","subtitle","fontSize","lineHeight","fontFamily","contentView","position","width","marginTop","Accordion","props","subTitle","content","RightIcon","LeftComponent","isInitialExpanded","styles","CONTENT_MARGIN_HEIGHT","isExpanded","setIsExpanded","useState","shouldInitialExpandedRef","useRef","rotate","useSharedValue","animatedOpacity","animatedHeight","contentHeight","setContentHeight","animatedChevronDownStyles","useAnimatedStyle","transform","value","animatedContentBackgroundStyles","overflow","animatedContentStyle","opacity","onPress","prev","onLayout","event","nativeEvent","layout","current","setTimeout","useEffect","withTiming","withDelay"],"sources":["Accordion.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { LayoutChangeEvent, View } from 'react-native';\nimport Animated, {\n useAnimatedStyle,\n useSharedValue,\n withDelay,\n withTiming,\n WithTimingConfig,\n} from 'react-native-reanimated';\nimport { NamedStylesStringUnion, UseStyles } from '@fountain-ui/styles';\nimport { useTheme } from '../styles';\nimport { ChevronDown } from '../internal/icons';\nimport ButtonBase from '../ButtonBase';\nimport Column from '../Column';\nimport Row from '../Row';\nimport Spacer from '../Spacer';\nimport Typography from '../Typography';\n\nimport AccordionProps from './AccordionProps';\n\ntype AccordionStyles = NamedStylesStringUnion<\n 'root'\n | 'title'\n | 'titleColumn'\n | 'subtitle'\n | 'contentView'\n>;\n\nconst ROTATE_HIDE_DEGREE = 0;\nconst ROTATE_SHOW_DEGREE = 180;\nconst ANIMATION_CONFIG: Readonly<WithTimingConfig> = { duration: 200 };\nconst INITIAL_EXPANDED_DELAY_MILLIS = 100;\nconst CONTENT_OPACITY_DELAY_MILLIS = 200;\n\nconst useStyles: UseStyles<AccordionStyles> = function (): AccordionStyles {\n const theme = useTheme();\n\n return {\n root: { marginBottom: theme.spacing(3) },\n title: {\n borderRadius: theme.spacing(4),\n backgroundColor: theme.palette.paper.grey,\n paddingHorizontal: theme.spacing(4),\n paddingVertical: theme.spacing(3.5),\n alignItems: 'center',\n height: 64,\n },\n titleColumn: { flexShrink: 1 },\n subtitle: {\n fontSize: 11,\n lineHeight: 12,\n fontFamily: 'Inter-Regular',\n },\n contentView: {\n position: 'absolute',\n width: '100%',\n borderRadius: theme.spacing(4),\n backgroundColor: theme.palette.paper.grey,\n paddingHorizontal: theme.spacing(4),\n paddingVertical: theme.spacing(6),\n marginTop: theme.spacing(1),\n },\n };\n};\n\nexport default function Accordion(props: AccordionProps) {\n const {\n title,\n subTitle,\n content,\n RightIcon,\n LeftComponent,\n isInitialExpanded = false,\n } = props;\n\n const styles = useStyles();\n const theme = useTheme();\n const CONTENT_MARGIN_HEIGHT = theme.spacing(2);\n\n const [isExpanded, setIsExpanded] = useState(false);\n const shouldInitialExpandedRef = useRef<boolean>(isInitialExpanded);\n\n const rotate = useSharedValue(ROTATE_HIDE_DEGREE);\n const animatedOpacity = useSharedValue(0);\n\n const animatedHeight = useSharedValue(0);\n const [contentHeight, setContentHeight] = useState(0);\n\n const animatedChevronDownStyles = useAnimatedStyle(() => ({\n transform: [{ rotate: `${rotate.value}deg` }],\n }), []);\n\n const animatedContentBackgroundStyles = useAnimatedStyle(() => ({\n height: animatedHeight.value,\n overflow: 'hidden',\n }), []);\n\n const animatedContentStyle = useAnimatedStyle(() => ({\n opacity: animatedOpacity.value,\n }), []);\n\n const onPress = () => {\n setIsExpanded(prev => !prev);\n };\n\n const onLayout = (event: LayoutChangeEvent) => {\n const height = event.nativeEvent.layout.height + CONTENT_MARGIN_HEIGHT;\n setContentHeight(height);\n\n if (shouldInitialExpandedRef.current) {\n shouldInitialExpandedRef.current = false;\n setTimeout(() => setIsExpanded(true), INITIAL_EXPANDED_DELAY_MILLIS);\n }\n };\n\n useEffect(() => {\n rotate.value = withTiming(isExpanded ? ROTATE_SHOW_DEGREE : ROTATE_HIDE_DEGREE, ANIMATION_CONFIG);\n\n animatedHeight.value = withTiming(isExpanded ? contentHeight : 0, ANIMATION_CONFIG);\n\n animatedOpacity.value = isExpanded\n ? withDelay(CONTENT_OPACITY_DELAY_MILLIS, withTiming(1, ANIMATION_CONFIG))\n : withTiming(0, ANIMATION_CONFIG);\n }, [isExpanded, contentHeight]);\n\n return (\n <Column style={styles.root}>\n <ButtonBase onPress={onPress}>\n <Row style={styles.title}>\n {LeftComponent ? LeftComponent : null}\n\n <Column style={styles.titleColumn}>\n <Typography\n variant={'subtitle2'}\n children={title}\n color={'textPrimary'}\n numberOfLines={1}\n disableFontScaling={true}\n />\n\n {subTitle ? (\n <React.Fragment>\n <Spacer size={0.5}/>\n\n <Typography\n style={styles.subtitle}\n color={'tertiary'}\n children={subTitle}\n numberOfLines={1}\n disableFontScaling={true}\n />\n </React.Fragment>\n ) : null}\n </Column>\n\n <Spacer flex={1}/>\n\n <Spacer size={3}/>\n\n <Animated.View style={animatedChevronDownStyles}>\n {RightIcon ? RightIcon : (\n <ChevronDown\n width={20}\n height={20}\n color={'tertiary'}\n />\n )}\n </Animated.View>\n </Row>\n </ButtonBase>\n\n <Animated.View style={animatedContentBackgroundStyles}>\n <View\n onLayout={onLayout}\n style={styles.contentView}\n >\n <Animated.View style={animatedContentStyle}>\n {typeof content === 'string' ? (\n <Typography\n variant={'subtitle2'}\n color={'tertiary'}\n children={content}\n />\n ) : (content)}\n </Animated.View>\n </View>\n </Animated.View>\n </Column>\n );\n}\n"],"mappings":"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"}
@@ -13,14 +13,10 @@ var _styles = require("@fountain-ui/styles");
13
13
 
14
14
  var _Column = _interopRequireDefault(require("../Column"));
15
15
 
16
- var _Modal = _interopRequireDefault(require("../Modal"));
16
+ var _Modal = _interopRequireWildcard(require("../Modal"));
17
17
 
18
18
  var _Paper = _interopRequireDefault(require("../Paper"));
19
19
 
20
- var _hooks = require("../hooks");
21
-
22
- var _utils = require("../utils");
23
-
24
20
  var _styles2 = require("../styles");
25
21
 
26
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -32,8 +28,6 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
32
28
  function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }
33
29
 
34
30
  const DIALOG_MAX_WIDTH = 328;
35
- const fadeDuration = 300;
36
- const fadeAnimationDelay = 50;
37
31
 
38
32
  const useStyles = function () {
39
33
  const theme = (0, _styles2.useTheme)();
@@ -49,6 +43,7 @@ const useStyles = function () {
49
43
  zIndex: theme.zIndex.dialog
50
44
  },
51
45
  paper: {
46
+ borderRadius: theme.shape.roundnessExtra,
52
47
  margin,
53
48
  maxWidth: DIALOG_MAX_WIDTH,
54
49
  overflow: 'hidden',
@@ -77,6 +72,7 @@ const useStyles = function () {
77
72
 
78
73
  function Dialog(props) {
79
74
  const {
75
+ animationType = _Modal.ANIMATION_TYPE.SLIDE,
80
76
  children,
81
77
  fullScreen = false,
82
78
  onClose,
@@ -86,42 +82,74 @@ function Dialog(props) {
86
82
  ...otherProps
87
83
  } = props;
88
84
  const styles = useStyles();
89
- const theme = (0, _styles2.useTheme)();
90
- const animatedOpacity = (0, _hooks.useAnimatedValue)(0);
91
- (0, _react.useEffect)(() => {
92
- if (!fullScreen) {
93
- _reactNative.Animated.timing(animatedOpacity, {
94
- toValue: visible ? 1 : 0,
95
- duration: fadeDuration,
96
- delay: visible ? fadeAnimationDelay : 0,
97
- easing: _reactNative.Easing.out(_reactNative.Easing.exp),
98
- useNativeDriver: _utils.isNotAndroid12
99
- }).start();
85
+ const {
86
+ height: screenHeight
87
+ } = (0, _reactNative.useWindowDimensions)();
88
+ const closeAnimation = (0, _react.useMemo)(() => {
89
+ if (animationType === _Modal.ANIMATION_TYPE.FADE) {
90
+ return [{
91
+ toValue: 0,
92
+ type: _Modal.ANIMATION_TYPE.FADE
93
+ }];
94
+ } else if (animationType === _Modal.ANIMATION_TYPE.SLIDE && !fullScreen) {
95
+ return [{
96
+ toValue: screenHeight,
97
+ type: _Modal.ANIMATION_TYPE.SLIDE
98
+ }, {
99
+ duration: 150,
100
+ toValue: 0,
101
+ type: _Modal.ANIMATION_TYPE.FADE
102
+ }];
100
103
  }
101
- }, [fullScreen, visible]);
104
+
105
+ return [{
106
+ duration: 150,
107
+ toValue: screenHeight,
108
+ type: _Modal.ANIMATION_TYPE.SLIDE
109
+ }];
110
+ }, [animationType, fullScreen, screenHeight]);
111
+ const openAnimation = (0, _react.useMemo)(() => {
112
+ if (animationType === _Modal.ANIMATION_TYPE.FADE) {
113
+ return [{
114
+ toValue: 1,
115
+ type: _Modal.ANIMATION_TYPE.FADE
116
+ }];
117
+ } else if (animationType === _Modal.ANIMATION_TYPE.SLIDE && !fullScreen) {
118
+ return [{
119
+ toValue: 0,
120
+ type: _Modal.ANIMATION_TYPE.SLIDE
121
+ }, {
122
+ delay: 50,
123
+ duration: 150,
124
+ toValue: 1,
125
+ type: _Modal.ANIMATION_TYPE.FADE
126
+ }];
127
+ }
128
+
129
+ return [{
130
+ toValue: 0,
131
+ type: _Modal.ANIMATION_TYPE.SLIDE
132
+ }];
133
+ }, [animationType, fullScreen]);
134
+ const initialOpacity = animationType === _Modal.ANIMATION_TYPE.SLIDE && fullScreen ? 1 : undefined;
135
+ const initialTranslateY = animationType === _Modal.ANIMATION_TYPE.FADE ? 0 : undefined;
102
136
  return /*#__PURE__*/_react.default.createElement(_Modal.default, _extends({
103
137
  animationStyle: fullScreen ? styles.animationFullScreen : styles.animation,
138
+ closeAnimation: closeAnimation,
139
+ initialOpacity: initialOpacity,
140
+ initialTranslateY: initialTranslateY,
104
141
  onClose: onClose,
105
- exitDuration: fullScreen ? 150 : 300,
142
+ openAnimation: openAnimation,
106
143
  visible: visible,
107
144
  style: styles.root
108
- }, otherProps), /*#__PURE__*/_react.default.createElement(_reactNative.Animated.View, {
109
- needsOffscreenAlphaCompositing: true,
110
- style: {
111
- height: fullScreen ? '100%' : 'auto',
112
- width: fullScreen ? '100%' : 'auto',
113
- opacity: fullScreen ? 1 : animatedOpacity
114
- }
115
- }, topElement ? /*#__PURE__*/_react.default.createElement(_Column.default, {
145
+ }, otherProps), /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, topElement ? /*#__PURE__*/_react.default.createElement(_Column.default, {
116
146
  style: fullScreen ? undefined : styles.topElementSize
117
147
  }, /*#__PURE__*/_react.default.createElement(_Column.default, {
118
148
  style: styles.topElementPosition
119
149
  }, topElement)) : null, /*#__PURE__*/_react.default.createElement(_Paper.default, {
120
150
  elevation: 6,
121
151
  square: fullScreen,
122
- style: (0, _styles.css)([{
123
- borderRadius: fullScreen ? undefined : theme.shape.roundnessExtra
124
- }, fullScreen ? styles.paperFullScreen : styles.paper, style])
152
+ style: (0, _styles.css)([fullScreen ? styles.paperFullScreen : styles.paper, style])
125
153
  }, children)));
126
154
  }
127
155
 
@@ -1 +1 @@
1
- {"version":3,"names":["DIALOG_MAX_WIDTH","fadeDuration","fadeAnimationDelay","useStyles","theme","useTheme","width","useWindowDimensions","margin","spacing","dialogWidth","root","alignItems","justifyContent","zIndex","dialog","paper","maxWidth","overflow","paperFullScreen","flexGrow","animation","animationFullScreen","height","topElementSize","marginHorizontal","topElementPosition","position","bottom","Dialog","props","children","fullScreen","onClose","style","visible","topElement","otherProps","styles","animatedOpacity","useAnimatedValue","useEffect","Animated","timing","toValue","duration","delay","easing","Easing","out","exp","useNativeDriver","isNotAndroid12","start","opacity","undefined","css","borderRadius","shape","roundnessExtra"],"sources":["Dialog.tsx"],"sourcesContent":["import React, { useEffect } from 'react';\nimport { useWindowDimensions, Animated, Easing } from 'react-native';\nimport { css, NamedStylesStringUnion, UseStyles } from '@fountain-ui/styles';\nimport Column from '../Column';\nimport Modal from '../Modal';\nimport Paper from '../Paper';\nimport { useAnimatedValue } from '../hooks';\nimport { isNotAndroid12 } from '../utils';\nimport { useTheme } from '../styles';\nimport type DialogProps from './DialogProps';\n\ntype DialogStyleKeys =\n | 'root'\n | 'paper'\n | 'paperFullScreen'\n | 'animation'\n | 'animationFullScreen'\n | 'topElementSize'\n | 'topElementPosition';\n\ntype DialogStyles = NamedStylesStringUnion<DialogStyleKeys>;\n\nconst DIALOG_MAX_WIDTH = 328;\n\nconst fadeDuration = 300;\nconst fadeAnimationDelay = 50;\n\nconst useStyles: UseStyles<DialogStyles> = function (): DialogStyles {\n const theme = useTheme();\n\n const { width } = useWindowDimensions();\n\n const margin = theme.spacing(4);\n const dialogWidth = width - margin * 2;\n\n return {\n root: {\n alignItems: 'center',\n justifyContent: 'center',\n zIndex: theme.zIndex.dialog,\n },\n paper: {\n margin,\n maxWidth: DIALOG_MAX_WIDTH,\n overflow: 'hidden',\n width: dialogWidth,\n },\n paperFullScreen: {\n flexGrow: 1,\n },\n animation: {},\n animationFullScreen: {\n width: '100%',\n height: '100%',\n },\n topElementSize: {\n marginHorizontal: margin,\n maxWidth: DIALOG_MAX_WIDTH,\n width: dialogWidth,\n },\n topElementPosition: {\n position: 'absolute',\n bottom: -1 * theme.spacing(4),\n width: '100%',\n },\n };\n};\n\nexport default function Dialog(props: DialogProps) {\n const {\n children,\n fullScreen = false,\n onClose,\n style = {},\n visible,\n topElement,\n ...otherProps\n } = props;\n\n const styles = useStyles();\n const theme = useTheme();\n const animatedOpacity = useAnimatedValue(0);\n\n useEffect(() => {\n if(!fullScreen){\n Animated.timing(animatedOpacity, {\n toValue: visible ? 1 : 0,\n duration: fadeDuration,\n delay: visible ? fadeAnimationDelay : 0,\n easing: Easing.out(Easing.exp),\n useNativeDriver: isNotAndroid12,\n }).start();\n }\n }, [fullScreen, visible]);\n\n return (\n <Modal\n animationStyle={fullScreen ? styles.animationFullScreen : styles.animation}\n onClose={onClose}\n exitDuration={fullScreen ? 150 : 300}\n visible={visible}\n style={styles.root}\n {...otherProps}\n >\n <Animated.View\n needsOffscreenAlphaCompositing={true}\n style={{\n height: fullScreen ? '100%' : 'auto',\n width: fullScreen ? '100%' : 'auto',\n opacity: fullScreen ? 1 : animatedOpacity,\n }}\n >\n {topElement ? (\n <Column style={fullScreen ? undefined : styles.topElementSize}>\n <Column style={styles.topElementPosition}>\n {topElement}\n </Column>\n </Column>\n ) : null}\n\n <Paper\n elevation={6}\n square={fullScreen}\n style={css([\n { borderRadius: fullScreen ? undefined : theme.shape.roundnessExtra },\n fullScreen ? styles.paperFullScreen : styles.paper,\n style,\n ])}\n >\n {children}\n </Paper>\n </Animated.View>\n </Modal>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["DIALOG_MAX_WIDTH","useStyles","theme","useTheme","width","useWindowDimensions","margin","spacing","dialogWidth","root","alignItems","justifyContent","zIndex","dialog","paper","borderRadius","shape","roundnessExtra","maxWidth","overflow","paperFullScreen","flexGrow","animation","animationFullScreen","height","topElementSize","marginHorizontal","topElementPosition","position","bottom","Dialog","props","animationType","ANIMATION_TYPE","SLIDE","children","fullScreen","onClose","style","visible","topElement","otherProps","styles","screenHeight","closeAnimation","useMemo","FADE","toValue","type","duration","openAnimation","delay","initialOpacity","undefined","initialTranslateY","css"],"sources":["Dialog.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport { useWindowDimensions } from 'react-native';\nimport { css, NamedStylesStringUnion, UseStyles } from '@fountain-ui/styles';\nimport Column from '../Column';\nimport Modal, { ANIMATION_TYPE, AnimationUnit } from '../Modal';\nimport Paper from '../Paper';\nimport { useTheme } from '../styles';\nimport type DialogProps from './DialogProps';\n\ntype DialogStyleKeys =\n | 'root'\n | 'paper'\n | 'paperFullScreen'\n | 'animation'\n | 'animationFullScreen'\n | 'topElementSize'\n | 'topElementPosition';\n\ntype DialogStyles = NamedStylesStringUnion<DialogStyleKeys>;\n\nconst DIALOG_MAX_WIDTH = 328;\n\nconst useStyles: UseStyles<DialogStyles> = function (): DialogStyles {\n const theme = useTheme();\n\n const { width } = useWindowDimensions();\n\n const margin = theme.spacing(4);\n const dialogWidth = width - margin * 2;\n\n return {\n root: {\n alignItems: 'center',\n justifyContent: 'center',\n zIndex: theme.zIndex.dialog,\n },\n paper: {\n borderRadius: theme.shape.roundnessExtra,\n margin,\n maxWidth: DIALOG_MAX_WIDTH,\n overflow: 'hidden',\n width: dialogWidth,\n },\n paperFullScreen: {\n flexGrow: 1,\n },\n animation: {},\n animationFullScreen: {\n width: '100%',\n height: '100%',\n },\n topElementSize: {\n marginHorizontal: margin,\n maxWidth: DIALOG_MAX_WIDTH,\n width: dialogWidth,\n },\n topElementPosition: {\n position: 'absolute',\n bottom: -1 * theme.spacing(4),\n width: '100%',\n },\n };\n};\n\nexport default function Dialog(props: DialogProps) {\n const {\n animationType = ANIMATION_TYPE.SLIDE,\n children,\n fullScreen = false,\n onClose,\n style = {},\n visible,\n topElement,\n ...otherProps\n } = props;\n\n const styles = useStyles();\n\n const { height: screenHeight } = useWindowDimensions();\n\n const closeAnimation = useMemo<AnimationUnit[]>(() => {\n if (animationType === ANIMATION_TYPE.FADE) {\n return [{\n toValue: 0,\n type: ANIMATION_TYPE.FADE,\n }];\n } else if (animationType === ANIMATION_TYPE.SLIDE && !fullScreen) {\n return [\n {\n toValue: screenHeight,\n type: ANIMATION_TYPE.SLIDE,\n },\n {\n duration: 150,\n toValue: 0,\n type: ANIMATION_TYPE.FADE,\n },\n ];\n }\n\n return [{\n duration: 150,\n toValue: screenHeight,\n type: ANIMATION_TYPE.SLIDE,\n }];\n }, [animationType, fullScreen, screenHeight]);\n\n const openAnimation = useMemo<AnimationUnit[]>(() => {\n if (animationType === ANIMATION_TYPE.FADE) {\n return [{\n toValue: 1,\n type: ANIMATION_TYPE.FADE,\n }];\n } else if (animationType === ANIMATION_TYPE.SLIDE && !fullScreen) {\n return [\n {\n toValue: 0,\n type: ANIMATION_TYPE.SLIDE,\n },\n {\n delay: 50,\n duration: 150,\n toValue: 1,\n type: ANIMATION_TYPE.FADE,\n },\n ];\n }\n\n return [{\n toValue: 0,\n type: ANIMATION_TYPE.SLIDE,\n }];\n }, [animationType, fullScreen]);\n\n const initialOpacity = animationType === ANIMATION_TYPE.SLIDE && fullScreen ? 1 : undefined;\n\n const initialTranslateY = animationType === ANIMATION_TYPE.FADE ? 0 : undefined;\n\n return (\n <Modal\n animationStyle={fullScreen ? styles.animationFullScreen : styles.animation}\n closeAnimation={closeAnimation}\n initialOpacity={initialOpacity}\n initialTranslateY={initialTranslateY}\n onClose={onClose}\n openAnimation={openAnimation}\n visible={visible}\n style={styles.root}\n {...otherProps}\n >\n <React.Fragment>\n {topElement ? (\n <Column style={fullScreen ? undefined : styles.topElementSize}>\n <Column style={styles.topElementPosition}>\n {topElement}\n </Column>\n </Column>\n ) : null}\n\n <Paper\n elevation={6}\n square={fullScreen}\n style={css([\n fullScreen ? styles.paperFullScreen : styles.paper,\n style,\n ])}\n >\n {children}\n </Paper>\n </React.Fragment>\n </Modal>\n );\n};\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["DialogProps.ts"],"sourcesContent":["import React from 'react';\nimport type { ModalProps } from '../Modal';\nimport type { OverridableComponentProps } from '../types';\n\nexport default interface DialogProps extends OverridableComponentProps<ModalProps, {\n /**\n * Dialog children, usually the included sub-components.\n */\n children?: React.ReactNode;\n\n /**\n * If `true`, the dialog is full-screen.\n * @default false\n */\n fullScreen?: boolean;\n\n /**\n * Top element for displaying additional information on the dialog.\n */\n topElement?: React.ReactNode;\n}> {}\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["DialogProps.ts"],"sourcesContent":["import React from 'react';\nimport type { ModalProps } from '../Modal';\nimport type { OverridableComponentProps } from '../types';\nimport { ANIMATION_TYPE } from '../Modal';\n\nexport default interface DialogProps extends OverridableComponentProps<ModalProps, {\n /**\n * Type of animation used when the dialog opens and closes.\n * @default 'slide'\n */\n animationType?: ANIMATION_TYPE;\n\n /**\n * Dialog children, usually the included sub-components.\n */\n children?: React.ReactNode;\n\n /**\n * If `true`, the dialog is full-screen.\n * @default false\n */\n fullScreen?: boolean;\n\n /**\n * Top element for displaying additional information on the dialog.\n */\n topElement?: React.ReactNode;\n}> {}\n"],"mappings":""}
@@ -0,0 +1,153 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = AnimatedContainer;
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
10
+ var _reactNative = require("react-native");
11
+
12
+ var R = _interopRequireWildcard(require("ramda"));
13
+
14
+ var _hooks = require("../../hooks");
15
+
16
+ var _utils = require("../../utils");
17
+
18
+ var _ModalProps = require("../ModalProps");
19
+
20
+ 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); }
21
+
22
+ 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; }
23
+
24
+ const DEFAULT_ANIMATION_CONFIG = {
25
+ duration: 300,
26
+ useNativeDriver: _utils.isNotAndroid12
27
+ };
28
+
29
+ function AnimatedContainer(props) {
30
+ const {
31
+ children,
32
+ closeAnimation,
33
+ initialOpacity,
34
+ initialTranslateY,
35
+ onEnter,
36
+ onEntered,
37
+ onExit,
38
+ onExited,
39
+ openAnimation,
40
+ style,
41
+ visible
42
+ } = props;
43
+ const {
44
+ height: screenHeight
45
+ } = (0, _reactNative.useWindowDimensions)();
46
+ const opacity = (0, _hooks.useAnimatedValue)(initialOpacity ?? 0);
47
+ const translateY = (0, _hooks.useAnimatedValue)(initialTranslateY ?? screenHeight);
48
+ const convertToCompositeAnimation = (0, _react.useCallback)(animationUnit => {
49
+ const {
50
+ type,
51
+ ...others
52
+ } = animationUnit;
53
+
54
+ switch (type) {
55
+ case _ModalProps.ANIMATION_TYPE.FADE:
56
+ return _reactNative.Animated.timing(opacity, { ...others,
57
+ useNativeDriver: _utils.isNotAndroid12
58
+ });
59
+
60
+ case _ModalProps.ANIMATION_TYPE.SLIDE:
61
+ default:
62
+ const easing = others.toValue === screenHeight ? _reactNative.Easing.in(_reactNative.Easing.ease) : _reactNative.Platform.OS === 'web' ? _reactNative.Easing.bezier(0.16, 1, 0.3, 1) : _reactNative.Easing.out(_reactNative.Easing.exp);
63
+ return _reactNative.Animated.timing(translateY, { ...others,
64
+ easing,
65
+ useNativeDriver: _utils.isNotAndroid12
66
+ });
67
+ }
68
+ }, [screenHeight]);
69
+ (0, _react.useEffect)(() => {
70
+ if (visible) {
71
+ onEnter === null || onEnter === void 0 ? void 0 : onEnter();
72
+
73
+ if (R.isNil(openAnimation)) {
74
+ opacity.setValue(1);
75
+
76
+ _reactNative.Animated.timing(translateY, { ...DEFAULT_ANIMATION_CONFIG,
77
+ easing: _reactNative.Platform.OS === 'web' ? _reactNative.Easing.bezier(0.16, 1, 0.3, 1) : _reactNative.Easing.out(_reactNative.Easing.exp),
78
+ toValue: 0
79
+ }).start(_ref => {
80
+ let {
81
+ finished
82
+ } = _ref;
83
+
84
+ if (finished) {
85
+ onEntered === null || onEntered === void 0 ? void 0 : onEntered();
86
+ }
87
+ });
88
+ } else {
89
+ const convertedAnimation = openAnimation.map(animationUnit => {
90
+ return convertToCompositeAnimation({ ...DEFAULT_ANIMATION_CONFIG,
91
+ ...animationUnit
92
+ });
93
+ });
94
+
95
+ _reactNative.Animated.parallel(convertedAnimation).start(_ref2 => {
96
+ let {
97
+ finished
98
+ } = _ref2;
99
+
100
+ if (finished) {
101
+ onEntered === null || onEntered === void 0 ? void 0 : onEntered();
102
+ }
103
+ });
104
+ }
105
+ } else {
106
+ onExit === null || onExit === void 0 ? void 0 : onExit();
107
+
108
+ if (R.isNil(closeAnimation)) {
109
+ opacity.setValue(1);
110
+
111
+ _reactNative.Animated.timing(translateY, { ...DEFAULT_ANIMATION_CONFIG,
112
+ easing: _reactNative.Easing.in(_reactNative.Easing.ease),
113
+ toValue: screenHeight
114
+ }).start(_ref3 => {
115
+ let {
116
+ finished
117
+ } = _ref3;
118
+
119
+ if (finished) {
120
+ onExited === null || onExited === void 0 ? void 0 : onExited();
121
+ }
122
+ });
123
+ } else {
124
+ const convertedAnimation = closeAnimation.map(animationUnit => {
125
+ return convertToCompositeAnimation({ ...DEFAULT_ANIMATION_CONFIG,
126
+ ...animationUnit
127
+ });
128
+ });
129
+
130
+ _reactNative.Animated.parallel(convertedAnimation).start(_ref4 => {
131
+ let {
132
+ finished
133
+ } = _ref4;
134
+
135
+ if (finished) {
136
+ onExited === null || onExited === void 0 ? void 0 : onExited();
137
+ }
138
+ });
139
+ }
140
+ }
141
+ }, [convertToCompositeAnimation, visible]);
142
+ const animatedStyle = {
143
+ opacity,
144
+ transform: [{
145
+ translateY
146
+ }]
147
+ };
148
+ return /*#__PURE__*/_react.default.createElement(_reactNative.Animated.View, {
149
+ pointerEvents: 'box-none',
150
+ style: [animatedStyle, style]
151
+ }, children);
152
+ }
153
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DEFAULT_ANIMATION_CONFIG","duration","useNativeDriver","isNotAndroid12","AnimatedContainer","props","children","closeAnimation","initialOpacity","initialTranslateY","onEnter","onEntered","onExit","onExited","openAnimation","style","visible","height","screenHeight","useWindowDimensions","opacity","useAnimatedValue","translateY","convertToCompositeAnimation","useCallback","animationUnit","type","others","ANIMATION_TYPE","FADE","Animated","timing","SLIDE","easing","toValue","Easing","in","ease","Platform","OS","bezier","out","exp","useEffect","R","isNil","setValue","start","finished","convertedAnimation","map","parallel","animatedStyle","transform"],"sources":["index.tsx"],"sourcesContent":["import React, { useCallback, useEffect } from 'react';\nimport { Animated, Easing, Platform, useWindowDimensions } from 'react-native';\nimport * as R from 'ramda';\nimport { useAnimatedValue } from '../../hooks';\nimport { isNotAndroid12 } from '../../utils';\nimport type ModalProps from '../ModalProps';\nimport { ANIMATION_TYPE, AnimationUnit } from '../ModalProps';\n\ntype AnimatedContainerProps = Pick<ModalProps,\n | 'children'\n | 'closeAnimation'\n | 'initialOpacity'\n | 'initialTranslateY'\n | 'onEnter'\n | 'onEntered'\n | 'onExit'\n | 'onExited'\n | 'openAnimation'\n | 'style'\n | 'visible'>\n\nconst DEFAULT_ANIMATION_CONFIG = {\n duration: 300,\n useNativeDriver: isNotAndroid12,\n};\n\nexport default function AnimatedContainer(props: AnimatedContainerProps) {\n const {\n children,\n closeAnimation,\n initialOpacity,\n initialTranslateY,\n onEnter,\n onEntered,\n onExit,\n onExited,\n openAnimation,\n style,\n visible,\n } = props;\n\n const { height: screenHeight } = useWindowDimensions();\n\n const opacity = useAnimatedValue(initialOpacity ?? 0);\n\n const translateY = useAnimatedValue(initialTranslateY ?? screenHeight);\n\n const convertToCompositeAnimation = useCallback((animationUnit: AnimationUnit) => {\n const {\n type,\n ...others\n } = animationUnit;\n\n switch (type) {\n case ANIMATION_TYPE.FADE:\n return Animated.timing(opacity, {\n ...others,\n useNativeDriver: isNotAndroid12,\n });\n case ANIMATION_TYPE.SLIDE:\n default:\n const easing = others.toValue === screenHeight\n ? Easing.in(Easing.ease)\n : Platform.OS === 'web'\n ? Easing.bezier(0.16, 1, 0.3, 1)\n : Easing.out(Easing.exp);\n\n return Animated.timing(translateY, {\n ...others,\n easing,\n useNativeDriver: isNotAndroid12,\n });\n }\n }, [screenHeight]);\n\n useEffect(() => {\n if (visible) {\n onEnter?.();\n\n if (R.isNil(openAnimation)) {\n opacity.setValue(1);\n\n Animated.timing(translateY, {\n ...DEFAULT_ANIMATION_CONFIG,\n easing: Platform.OS === 'web'\n ? Easing.bezier(0.16, 1, 0.3, 1)\n : Easing.out(Easing.exp),\n toValue: 0,\n }).start(({ finished }) => {\n if (finished) {\n onEntered?.();\n }\n });\n } else {\n const convertedAnimation = openAnimation.map((animationUnit) => {\n return convertToCompositeAnimation({\n ...DEFAULT_ANIMATION_CONFIG,\n ...animationUnit,\n });\n });\n\n Animated.parallel(convertedAnimation).start(({ finished }) => {\n if (finished) {\n onEntered?.();\n }\n });\n }\n } else {\n onExit?.();\n\n if (R.isNil(closeAnimation)) {\n opacity.setValue(1);\n\n Animated.timing(translateY, {\n ...DEFAULT_ANIMATION_CONFIG,\n easing: Easing.in(Easing.ease),\n toValue: screenHeight,\n }).start(({ finished }) => {\n if (finished) {\n onExited?.();\n }\n });\n } else {\n const convertedAnimation = closeAnimation.map((animationUnit) => {\n return convertToCompositeAnimation({\n ...DEFAULT_ANIMATION_CONFIG,\n ...animationUnit,\n });\n });\n\n Animated.parallel(convertedAnimation).start(({ finished }) => {\n if (finished) {\n onExited?.();\n }\n });\n }\n }\n }, [convertToCompositeAnimation, visible]);\n\n const animatedStyle = {\n opacity,\n transform: [{ translateY }],\n };\n\n return (\n <Animated.View\n pointerEvents={'box-none'}\n style={[\n animatedStyle,\n style,\n ]}\n >\n {children}\n </Animated.View>\n );\n}\n"],"mappings":"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"}
@@ -14,7 +14,7 @@ var _styles = require("../styles");
14
14
 
15
15
  var _hooks = require("../hooks");
16
16
 
17
- var _Slide = _interopRequireDefault(require("../Slide"));
17
+ var _AnimatedContainer = _interopRequireDefault(require("./AnimatedContainer"));
18
18
 
19
19
  var _SimpleBackdrop = _interopRequireDefault(require("./SimpleBackdrop"));
20
20
 
@@ -22,9 +22,6 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
22
22
 
23
23
  function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }
24
24
 
25
- const defaultEnterDuration = 300;
26
- const defaultExitDuration = 150;
27
-
28
25
  const createModalCloseEvent = reason => ({
29
26
  metadata: {
30
27
  reason
@@ -38,11 +35,17 @@ function Modal(props) {
38
35
  animationStyle,
39
36
  backdropOpacity = 0.5,
40
37
  children,
38
+ closeAnimation,
41
39
  disableAnimation = false,
42
- enterDuration = defaultEnterDuration,
43
- exitDuration = defaultExitDuration,
44
40
  hideBackdrop = false,
41
+ initialOpacity,
42
+ initialTranslateY,
45
43
  onClose,
44
+ onEnter: onEnterProp,
45
+ onEntered: onEnteredProp,
46
+ onExit: onExitProp,
47
+ onExited: onExitedProp,
48
+ openAnimation,
46
49
  style,
47
50
  visible,
48
51
  ...otherProps
@@ -58,6 +61,24 @@ function Modal(props) {
58
61
 
59
62
  const elevationStyle = (0, _hooks.useElevationStyle)(6);
60
63
 
64
+ const onEnter = () => {
65
+ setExited(false);
66
+ onEnterProp === null || onEnterProp === void 0 ? void 0 : onEnterProp();
67
+ };
68
+
69
+ const onEntered = () => {
70
+ onEnteredProp === null || onEnteredProp === void 0 ? void 0 : onEnteredProp();
71
+ };
72
+
73
+ const onExit = () => {
74
+ onExitProp === null || onExitProp === void 0 ? void 0 : onExitProp();
75
+ };
76
+
77
+ const onExited = () => {
78
+ setExited(true);
79
+ onExitedProp === null || onExitedProp === void 0 ? void 0 : onExitedProp();
80
+ };
81
+
61
82
  if (!visible) {
62
83
  if (disableAnimation || exited) {
63
84
  return null;
@@ -66,17 +87,22 @@ function Modal(props) {
66
87
 
67
88
  return /*#__PURE__*/_react.default.createElement(_reactNative.View, _extends({
68
89
  style: (0, _styles.css)([_styles.StyleSheet.absoluteFill, elevationStyle, style])
69
- }, otherProps), hideBackdrop || !visible ? null : /*#__PURE__*/_react.default.createElement(_SimpleBackdrop.default, {
90
+ }, otherProps), !hideBackdrop && visible ? /*#__PURE__*/_react.default.createElement(_SimpleBackdrop.default, {
70
91
  onPress: handleBackdropPress,
71
92
  opacity: backdropOpacity
72
- }), !disableAnimation ? /*#__PURE__*/_react.default.createElement(_Slide.default, {
73
- appear: visible,
74
- enterDuration: enterDuration,
75
- exitDuration: exitDuration,
76
- onEnter: () => setExited(false),
77
- onExited: () => setExited(true),
78
- style: animationStyle
79
- }, children) : children);
93
+ }) : null, !disableAnimation ? /*#__PURE__*/_react.default.createElement(_AnimatedContainer.default, {
94
+ children: children,
95
+ closeAnimation: closeAnimation,
96
+ initialOpacity: initialOpacity,
97
+ initialTranslateY: initialTranslateY,
98
+ onEnter: onEnter,
99
+ onEntered: onEntered,
100
+ onExit: onExit,
101
+ onExited: onExited,
102
+ openAnimation: openAnimation,
103
+ style: animationStyle,
104
+ visible: visible
105
+ }) : children);
80
106
  }
81
107
 
82
108
  ;