@mirai/ui 2.0.22 → 2.0.23
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.
|
@@ -85,15 +85,15 @@ var Slider = function Slider(_ref) {
|
|
|
85
85
|
};
|
|
86
86
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
87
87
|
}, [auto, index]);
|
|
88
|
-
|
|
89
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
90
88
|
(0, _react.useEffect)(function () {
|
|
91
|
-
clearTimeout(timeout);
|
|
92
89
|
timeout = setTimeout(function () {
|
|
93
90
|
return setDisabledScroll(false);
|
|
94
91
|
}, _Slider.SCROLL_DELAY);
|
|
95
92
|
if (!replay && index + 1 === images.length) setReplay(true);
|
|
96
93
|
onChange(index);
|
|
94
|
+
return function () {
|
|
95
|
+
return clearTimeout(timeout);
|
|
96
|
+
};
|
|
97
97
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
98
98
|
}, [index]);
|
|
99
99
|
var height = propHeight;
|
|
@@ -106,8 +106,8 @@ var Slider = function Slider(_ref) {
|
|
|
106
106
|
var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
107
107
|
_ref2$x = _ref2.x,
|
|
108
108
|
x = _ref2$x === void 0 ? 0 : _ref2$x;
|
|
109
|
-
var nextIndex = x
|
|
110
|
-
if (nextIndex !== index) setIndex(nextIndex);
|
|
109
|
+
var nextIndex = x / width;
|
|
110
|
+
if (Number.isInteger(nextIndex) && nextIndex !== index) setIndex(nextIndex);
|
|
111
111
|
};
|
|
112
112
|
var defaultDirection = _theme.Theme.getDirection() === _theme.DIRECTION_TYPE.LEFT;
|
|
113
113
|
var hasImages = images.length > 1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Slider.js","names":["interval","timeout","Slider","auto","behavior","captions","height","propHeight","images","index","propIndex","indicator","preloadImages","PRELOAD_IMAGES","width","propWidth","onChange","onCounter","others","useDevice","isDesktop","useState","disabledScroll","setDisabledScroll","focus","setFocus","setIndex","replay","setReplay","useEffect","setInterval","length","clearInterval","clearTimeout","setTimeout","SCROLL_DELAY","handleIndex","nextIndex","Math","abs","defaultDirection","handleScroll","x","round","Theme","getDirection","DIRECTION_TYPE","LEFT","hasImages","isEnd","undefined","styles","style","slider","className","button","hide","first","ICON","REPLAY","icon","floor","scrollView","map","image","imageIndex","item","caption","overlay","text","second","RIGHT","counter","reverse","PHOTO_LIBRARY","progress","visible","displayName","propTypes","PropTypes","bool","string","arrayOf","number","isRequired","func"],"sources":["../../../src/components/Slider/Slider.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { styles } from '../../helpers';\nimport { useDevice } from '../../hooks';\nimport { Icon, ICON, ScrollView, Pressable, Text, View } from '../../primitives';\nimport { DIRECTION_TYPE, Theme } from '../../theme';\nimport { Progress } from '../Progress';\nimport { PRELOAD_IMAGES, SCROLL_DELAY } from './Slider.constants';\nimport { Item } from './Slider.Item';\nimport style from './Slider.module.css';\n\nlet interval;\nlet timeout;\n\nconst Slider = ({\n auto = false,\n behavior = 'smooth',\n captions = [],\n height: propHeight = 240,\n images = [],\n index: propIndex = 0,\n indicator = false,\n preloadImages = PRELOAD_IMAGES,\n width: propWidth = 320,\n onChange = () => {},\n onCounter,\n ...others\n}) => {\n const { isDesktop } = useDevice();\n\n const [disabledScroll, setDisabledScroll] = useState(true);\n const [focus, setFocus] = useState(false);\n const [index, setIndex] = useState(propIndex);\n const [replay, setReplay] = useState(false);\n\n useEffect(() => {\n if (auto) interval = setInterval(() => setIndex(index < images.length - 1 ? index + 1 : 0), 2000);\n return () => clearInterval(interval);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [auto, index]);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => {\n clearTimeout(timeout);\n timeout = setTimeout(() => setDisabledScroll(false), SCROLL_DELAY);\n\n if (!replay && index + 1 === images.length) setReplay(true);\n\n onChange(index);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [index]);\n\n const height = propHeight;\n\n const width = propWidth;\n\n const handleIndex = (nextIndex) => {\n setDisabledScroll(true);\n setIndex(Math.abs(nextIndex) === images.length ? 0 : Math.abs(nextIndex) * (defaultDirection ? 1 : -1));\n };\n\n const handleScroll = ({ x = 0 } = {}) => {\n const nextIndex = x < width ? 0 : Math.round(x / width);\n\n if (nextIndex !== index) setIndex(nextIndex);\n };\n\n const defaultDirection = Theme.getDirection() === DIRECTION_TYPE.LEFT;\n const hasImages = images.length > 1;\n const isEnd = Math.abs(index) >= images.length - 1;\n\n return (\n <View\n {...others}\n tag=\"slider\"\n onMouseEnter={isDesktop ? () => setFocus(true) : undefined}\n onMouseLeave={isDesktop ? () => setFocus(false) : undefined}\n className={styles(style.slider, others.className)}\n style={{ ...others.style, width }}\n >\n {hasImages && (\n <Pressable\n onPress={() => handleIndex(index - 1)}\n className={styles(\n style.button,\n ((defaultDirection ? index <= 0 : replay ? false : isEnd) || (isDesktop && !focus)) && style.hide,\n style.first,\n )}\n >\n <Icon value={replay && !defaultDirection && isEnd ? ICON.REPLAY : ICON.LEFT} className={style.icon} />\n </Pressable>\n )}\n\n <ScrollView\n behavior={behavior}\n horizontal\n scrollEventThrottle={SCROLL_DELAY}\n scrollTo={index * Math.floor(width)}\n snap\n width={width}\n onScroll={disabledScroll ? undefined : handleScroll}\n className={style.scrollView}\n >\n {images.map((image, imageIndex) => (\n <View key={imageIndex} tag=\"images\" className={style.item}>\n <Item\n {...{ height, width }}\n image={\n replay ||\n (imageIndex >= Math.abs(index) - preloadImages && imageIndex <= Math.abs(index) + preloadImages)\n ? image\n : undefined\n }\n />\n {captions[imageIndex] && (\n <View tag=\"image-caption\" className={style.caption}>\n <Text bold small className={[style.overlay, style.text]}>\n {captions[imageIndex]}\n </Text>\n </View>\n )}\n </View>\n ))}\n </ScrollView>\n\n {hasImages && (\n <Pressable\n onPress={() => handleIndex(index + 1)}\n className={styles(\n style.button,\n ((defaultDirection ? (replay ? false : isEnd) : index === 0) || (isDesktop && !focus)) && style.hide,\n style.second,\n )}\n >\n <Icon\n value={replay && defaultDirection && index === images.length - 1 ? ICON.REPLAY : ICON.RIGHT}\n className={style.icon}\n />\n </Pressable>\n )}\n\n {hasImages && onCounter && (\n <Pressable\n onPress={onCounter}\n className={styles(style.overlay, style.counter, !defaultDirection && style.reverse)}\n >\n <Icon action value={ICON.PHOTO_LIBRARY} />\n <Text bold small>\n {images.length}\n </Text>\n </Pressable>\n )}\n\n {indicator && (\n <Progress\n value={(index * 100) / (images.length - 1)}\n className={styles(style.progress, index > 0 && style.visible)}\n />\n )}\n </View>\n );\n};\n\nSlider.displayName = 'Component:Slider';\n\nSlider.propTypes = {\n auto: PropTypes.bool,\n behavior: PropTypes.string,\n captions: PropTypes.arrayOf(PropTypes.string),\n height: PropTypes.number.isRequired,\n images: PropTypes.arrayOf(PropTypes.string).isRequired,\n index: PropTypes.number,\n indicator: PropTypes.bool,\n preloadImages: PropTypes.number,\n replay: PropTypes.bool,\n width: PropTypes.number.isRequired,\n onChange: PropTypes.func,\n onCounter: PropTypes.func,\n};\n\nexport { Slider };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Slider.js","names":["interval","timeout","Slider","auto","behavior","captions","height","propHeight","images","index","propIndex","indicator","preloadImages","PRELOAD_IMAGES","width","propWidth","onChange","onCounter","others","useDevice","isDesktop","useState","disabledScroll","setDisabledScroll","focus","setFocus","setIndex","replay","setReplay","useEffect","setInterval","length","clearInterval","setTimeout","SCROLL_DELAY","clearTimeout","handleIndex","nextIndex","Math","abs","defaultDirection","handleScroll","x","Number","isInteger","Theme","getDirection","DIRECTION_TYPE","LEFT","hasImages","isEnd","undefined","styles","style","slider","className","button","hide","first","ICON","REPLAY","icon","floor","scrollView","map","image","imageIndex","item","caption","overlay","text","second","RIGHT","counter","reverse","PHOTO_LIBRARY","progress","visible","displayName","propTypes","PropTypes","bool","string","arrayOf","number","isRequired","func"],"sources":["../../../src/components/Slider/Slider.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { styles } from '../../helpers';\nimport { useDevice } from '../../hooks';\nimport { Icon, ICON, ScrollView, Pressable, Text, View } from '../../primitives';\nimport { DIRECTION_TYPE, Theme } from '../../theme';\nimport { Progress } from '../Progress';\nimport { PRELOAD_IMAGES, SCROLL_DELAY } from './Slider.constants';\nimport { Item } from './Slider.Item';\nimport style from './Slider.module.css';\n\nlet interval;\nlet timeout;\n\nconst Slider = ({\n auto = false,\n behavior = 'smooth',\n captions = [],\n height: propHeight = 240,\n images = [],\n index: propIndex = 0,\n indicator = false,\n preloadImages = PRELOAD_IMAGES,\n width: propWidth = 320,\n onChange = () => {},\n onCounter,\n ...others\n}) => {\n const { isDesktop } = useDevice();\n\n const [disabledScroll, setDisabledScroll] = useState(true);\n const [focus, setFocus] = useState(false);\n const [index, setIndex] = useState(propIndex);\n const [replay, setReplay] = useState(false);\n\n useEffect(() => {\n if (auto) interval = setInterval(() => setIndex(index < images.length - 1 ? index + 1 : 0), 2000);\n return () => clearInterval(interval);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [auto, index]);\n\n useEffect(() => {\n timeout = setTimeout(() => setDisabledScroll(false), SCROLL_DELAY);\n\n if (!replay && index + 1 === images.length) setReplay(true);\n\n onChange(index);\n\n return () => clearTimeout(timeout);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [index]);\n\n const height = propHeight;\n\n const width = propWidth;\n\n const handleIndex = (nextIndex) => {\n setDisabledScroll(true);\n setIndex(Math.abs(nextIndex) === images.length ? 0 : Math.abs(nextIndex) * (defaultDirection ? 1 : -1));\n };\n\n const handleScroll = ({ x = 0 } = {}) => {\n const nextIndex = x / width;\n\n if (Number.isInteger(nextIndex) && nextIndex !== index) setIndex(nextIndex);\n };\n\n const defaultDirection = Theme.getDirection() === DIRECTION_TYPE.LEFT;\n const hasImages = images.length > 1;\n const isEnd = Math.abs(index) >= images.length - 1;\n\n return (\n <View\n {...others}\n tag=\"slider\"\n onMouseEnter={isDesktop ? () => setFocus(true) : undefined}\n onMouseLeave={isDesktop ? () => setFocus(false) : undefined}\n className={styles(style.slider, others.className)}\n style={{ ...others.style, width }}\n >\n {hasImages && (\n <Pressable\n onPress={() => handleIndex(index - 1)}\n className={styles(\n style.button,\n ((defaultDirection ? index <= 0 : replay ? false : isEnd) || (isDesktop && !focus)) && style.hide,\n style.first,\n )}\n >\n <Icon value={replay && !defaultDirection && isEnd ? ICON.REPLAY : ICON.LEFT} className={style.icon} />\n </Pressable>\n )}\n\n <ScrollView\n behavior={behavior}\n horizontal\n scrollEventThrottle={SCROLL_DELAY}\n scrollTo={index * Math.floor(width)}\n snap\n width={width}\n onScroll={disabledScroll ? undefined : handleScroll}\n className={style.scrollView}\n >\n {images.map((image, imageIndex) => (\n <View key={imageIndex} tag=\"images\" className={style.item}>\n <Item\n {...{ height, width }}\n image={\n replay ||\n (imageIndex >= Math.abs(index) - preloadImages && imageIndex <= Math.abs(index) + preloadImages)\n ? image\n : undefined\n }\n />\n {captions[imageIndex] && (\n <View tag=\"image-caption\" className={style.caption}>\n <Text bold small className={[style.overlay, style.text]}>\n {captions[imageIndex]}\n </Text>\n </View>\n )}\n </View>\n ))}\n </ScrollView>\n\n {hasImages && (\n <Pressable\n onPress={() => handleIndex(index + 1)}\n className={styles(\n style.button,\n ((defaultDirection ? (replay ? false : isEnd) : index === 0) || (isDesktop && !focus)) && style.hide,\n style.second,\n )}\n >\n <Icon\n value={replay && defaultDirection && index === images.length - 1 ? ICON.REPLAY : ICON.RIGHT}\n className={style.icon}\n />\n </Pressable>\n )}\n\n {hasImages && onCounter && (\n <Pressable\n onPress={onCounter}\n className={styles(style.overlay, style.counter, !defaultDirection && style.reverse)}\n >\n <Icon action value={ICON.PHOTO_LIBRARY} />\n <Text bold small>\n {images.length}\n </Text>\n </Pressable>\n )}\n\n {indicator && (\n <Progress\n value={(index * 100) / (images.length - 1)}\n className={styles(style.progress, index > 0 && style.visible)}\n />\n )}\n </View>\n );\n};\n\nSlider.displayName = 'Component:Slider';\n\nSlider.propTypes = {\n auto: PropTypes.bool,\n behavior: PropTypes.string,\n captions: PropTypes.arrayOf(PropTypes.string),\n height: PropTypes.number.isRequired,\n images: PropTypes.arrayOf(PropTypes.string).isRequired,\n index: PropTypes.number,\n indicator: PropTypes.bool,\n preloadImages: PropTypes.number,\n replay: PropTypes.bool,\n width: PropTypes.number.isRequired,\n onChange: PropTypes.func,\n onCounter: PropTypes.func,\n};\n\nexport { Slider };\n"],"mappings":"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"}
|