@fountain-ui/core 1.11.10 → 1.11.11
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 +8 -0
- package/build/commonjs/Accordion/Accordion.js +1 -1
- package/build/commonjs/Accordion/Accordion.js.map +1 -1
- package/build/commonjs/Pagination/Pagination.js +19 -14
- package/build/commonjs/Pagination/Pagination.js.map +1 -1
- package/build/module/Accordion/Accordion.js +1 -1
- package/build/module/Accordion/Accordion.js.map +1 -1
- package/build/module/Pagination/Pagination.js +18 -13
- package/build/module/Pagination/Pagination.js.map +1 -1
- package/build/typescript/Pagination/PaginationProps.d.ts +10 -0
- package/package.json +2 -2
- package/src/Accordion/Accordion.tsx +1 -1
- package/src/Pagination/Pagination.tsx +22 -15
- package/src/Pagination/PaginationProps.ts +13 -0
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,14 @@
|
|
|
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.11](https://github.com/tappytoon/tappytoon/compare/@fountain-ui/core@1.11.0...@fountain-ui/core@1.11.11) (2021-10-20)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @fountain-ui/core
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
6
14
|
## [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
15
|
|
|
8
16
|
**Note:** Version bump only for package @fountain-ui/core
|
|
@@ -54,7 +54,7 @@ function Accordion(props) {
|
|
|
54
54
|
|
|
55
55
|
const onPress = () => {
|
|
56
56
|
setIsExpanded(prev => !prev);
|
|
57
|
-
rotate.value = _reactNativeReanimated.default.withTiming(isExpanded ? 180 : 0, ANIMATION_OPTION);
|
|
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, {
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
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,CAAoB,CAACX,UAAD,GAAc,GAAd,GAAoB,CAAxC,EAA2ChB,gBAA3C,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"]}
|
|
@@ -9,13 +9,13 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
9
9
|
|
|
10
10
|
var _reactNative = require("react-native");
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var _icons = require("@fountain-ui/icons");
|
|
13
13
|
|
|
14
|
-
var
|
|
14
|
+
var _utils = require("@fountain-ui/utils");
|
|
15
15
|
|
|
16
16
|
var _styles = require("../styles");
|
|
17
17
|
|
|
18
|
-
var
|
|
18
|
+
var _IconButton = _interopRequireDefault(require("../IconButton"));
|
|
19
19
|
|
|
20
20
|
var _PaginationItem = _interopRequireDefault(require("../PaginationItem"));
|
|
21
21
|
|
|
@@ -62,9 +62,11 @@ const useStyles = function () {
|
|
|
62
62
|
|
|
63
63
|
function Pagination(props) {
|
|
64
64
|
const {
|
|
65
|
+
bundleSize = 1,
|
|
65
66
|
children,
|
|
66
67
|
count,
|
|
67
68
|
disabled = false,
|
|
69
|
+
hideIndicator = false,
|
|
68
70
|
hideNextButton = false,
|
|
69
71
|
hidePrevButton = false,
|
|
70
72
|
infinite = false,
|
|
@@ -92,33 +94,36 @@ function Pagination(props) {
|
|
|
92
94
|
};
|
|
93
95
|
|
|
94
96
|
const handlePrevPress = () => {
|
|
95
|
-
const prevPage = page
|
|
97
|
+
const prevPage = page - bundleSize >= firstPage ? page - bundleSize : infinite ? count - bundleSize + page : -1;
|
|
96
98
|
handleChange(prevPage);
|
|
97
99
|
};
|
|
98
100
|
|
|
99
101
|
const handleNextPress = () => {
|
|
100
|
-
const nextPage = page
|
|
102
|
+
const nextPage = page + bundleSize <= lastPage ? page + bundleSize : infinite ? page + bundleSize - count : -1;
|
|
101
103
|
handleChange(nextPage);
|
|
102
|
-
};
|
|
103
|
-
|
|
104
|
+
};
|
|
104
105
|
|
|
105
|
-
const prevButton = !hidePrevButton ? /*#__PURE__*/_react.default.createElement(
|
|
106
|
-
children: /*#__PURE__*/_react.default.createElement(_icons.
|
|
106
|
+
const prevButton = !hidePrevButton ? /*#__PURE__*/_react.default.createElement(_IconButton.default, {
|
|
107
|
+
children: /*#__PURE__*/_react.default.createElement(_icons.ChevronLeft, null),
|
|
108
|
+
color: 'tertiary',
|
|
107
109
|
disabled: disabled || !infinite && page <= firstPage,
|
|
108
110
|
onPress: handlePrevPress,
|
|
111
|
+
size: 'small',
|
|
109
112
|
style: children ? styles.prevAnchor : styles.prevInline
|
|
110
113
|
}) : null;
|
|
111
|
-
const nextButton = !hideNextButton ? /*#__PURE__*/_react.default.createElement(
|
|
112
|
-
children: /*#__PURE__*/_react.default.createElement(_icons.
|
|
113
|
-
|
|
114
|
+
const nextButton = !hideNextButton ? /*#__PURE__*/_react.default.createElement(_IconButton.default, {
|
|
115
|
+
children: /*#__PURE__*/_react.default.createElement(_icons.ChevronRight, null),
|
|
116
|
+
color: 'tertiary',
|
|
117
|
+
disabled: disabled || !infinite && page + bundleSize > lastPage,
|
|
114
118
|
onPress: handleNextPress,
|
|
119
|
+
size: 'small',
|
|
115
120
|
style: children ? styles.nextAnchor : styles.nextInline
|
|
116
121
|
}) : null;
|
|
117
|
-
const items = (0, _utils.times)(i => renderItem({
|
|
122
|
+
const items = !hideIndicator ? (0, _utils.times)(i => renderItem({
|
|
118
123
|
index: i,
|
|
119
124
|
disabled,
|
|
120
125
|
selected: i === page
|
|
121
|
-
}), count);
|
|
126
|
+
}), count) : null;
|
|
122
127
|
const containerProps = {
|
|
123
128
|
style: (0, _styles.css)([styles.root, children ? styles.rootAnchor : styles.rootInline, style]),
|
|
124
129
|
...otherProps
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Pagination.tsx"],"names":["useStyles","theme","root","rootInline","flexDirection","alignItems","rootAnchor","items","justifyContent","marginTop","spacing","arrowContainer","prevInline","marginRight","prevAnchor","position","left","nextInline","marginLeft","nextAnchor","right","Pagination","props","children","count","disabled","hideNextButton","hidePrevButton","infinite","onChange","page","renderItem","index","rest","style","otherProps","styles","firstPage","lastPage","handleChange","nextPage","handlePrevPress","prevPage","handleNextPress","prevButton","nextButton","i","selected","containerProps"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;AACA;;AACA;;AACA
|
|
1
|
+
{"version":3,"sources":["Pagination.tsx"],"names":["useStyles","theme","root","rootInline","flexDirection","alignItems","rootAnchor","items","justifyContent","marginTop","spacing","arrowContainer","prevInline","marginRight","prevAnchor","position","left","nextInline","marginLeft","nextAnchor","right","Pagination","props","bundleSize","children","count","disabled","hideIndicator","hideNextButton","hidePrevButton","infinite","onChange","page","renderItem","index","rest","style","otherProps","styles","firstPage","lastPage","handleChange","nextPage","handlePrevPress","prevPage","handleNextPress","prevButton","nextButton","i","selected","containerProps"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;;;;;AAgBA,MAAMA,SAAsC,GAAG,YAA8B;AACzE,QAAMC,KAAK,GAAG,uBAAd;AAEA,SAAO;AACHC,IAAAA,IAAI,EAAE,EADH;AAEHC,IAAAA,UAAU,EAAE;AACRC,MAAAA,aAAa,EAAE,KADP;AAERC,MAAAA,UAAU,EAAE;AAFJ,KAFT;AAMHC,IAAAA,UAAU,EAAE;AACRF,MAAAA,aAAa,EAAE;AADP,KANT;AASHG,IAAAA,KAAK,EAAE;AACHH,MAAAA,aAAa,EAAE,KADZ;AAEHI,MAAAA,cAAc,EAAE,QAFb;AAGHC,MAAAA,SAAS,EAAER,KAAK,CAACS,OAAN,CAAc,CAAd;AAHR,KATJ;AAcHC,IAAAA,cAAc,EAAE;AACZP,MAAAA,aAAa,EAAE,QADH;AAEZI,MAAAA,cAAc,EAAE;AAFJ,KAdb;AAkBHI,IAAAA,UAAU,EAAE;AACRC,MAAAA,WAAW,EAAEZ,KAAK,CAACS,OAAN,CAAc,CAAd;AADL,KAlBT;AAqBHI,IAAAA,UAAU,EAAE;AACRC,MAAAA,QAAQ,EAAE,UADF;AAERC,MAAAA,IAAI,EAAE,CAAC;AAFC,KArBT;AAyBHC,IAAAA,UAAU,EAAE;AACRC,MAAAA,UAAU,EAAEjB,KAAK,CAACS,OAAN,CAAc,CAAd;AADJ,KAzBT;AA4BHS,IAAAA,UAAU,EAAE;AACRJ,MAAAA,QAAQ,EAAE,UADF;AAERK,MAAAA,KAAK,EAAE,CAAC;AAFA;AA5BT,GAAP;AAiCH,CApCD;;AAsCe,SAASC,UAAT,CAAoBC,KAApB,EAA4C;AACvD,QAAM;AACFC,IAAAA,UAAU,GAAG,CADX;AAEFC,IAAAA,QAFE;AAGFC,IAAAA,KAHE;AAIFC,IAAAA,QAAQ,GAAG,KAJT;AAKFC,IAAAA,aAAa,GAAG,KALd;AAMFC,IAAAA,cAAc,GAAG,KANf;AAOFC,IAAAA,cAAc,GAAG,KAPf;AAQFC,IAAAA,QAAQ,GAAG,KART;AASFC,IAAAA,QATE;AAUFC,IAAAA,IAVE;AAWFC,IAAAA,UAAU,GAAG,CAAC;AAAEC,MAAAA,KAAF;AAAS,SAAGC;AAAZ,KAAD,kBAAwB,6BAAC,uBAAD;AAAgB,MAAA,GAAG,EAAG,GAAED,KAAM;AAA9B,OAAqCC,IAArC,EAXnC;AAYFC,IAAAA,KAZE;AAaF,OAAGC;AAbD,MAcFf,KAdJ;AAgBA,QAAMgB,MAAM,GAAGtC,SAAS,EAAxB;AAEA,QAAMuC,SAAS,GAAG,CAAlB;AACA,QAAMC,QAAQ,GAAGf,KAAK,GAAG,CAAzB;;AAEA,QAAMgB,YAAY,GAAIC,QAAD,IAAsB;AACvC,QAAIA,QAAQ,IAAIH,SAAZ,IAAyBG,QAAQ,IAAIF,QAAzC,EAAmD;AAC/C,UAAIT,QAAJ,EAAc;AACVA,QAAAA,QAAQ,CAACW,QAAD,CAAR;AACH;AACJ;AACJ,GAND;;AAQA,QAAMC,eAAe,GAAG,MAAM;AAC1B,UAAMC,QAAQ,GAAGZ,IAAI,GAAGT,UAAP,IAAqBgB,SAArB,GACXP,IAAI,GAAGT,UADI,GAEVO,QAAQ,GAAGL,KAAK,GAAGF,UAAR,GAAqBS,IAAxB,GAA+B,CAAC,CAF/C;AAIAS,IAAAA,YAAY,CAACG,QAAD,CAAZ;AACH,GAND;;AAQA,QAAMC,eAAe,GAAG,MAAM;AAC1B,UAAMH,QAAQ,GAAGV,IAAI,GAAGT,UAAP,IAAqBiB,QAArB,GACXR,IAAI,GAAGT,UADI,GAEVO,QAAQ,GAAGE,IAAI,GAAGT,UAAP,GAAoBE,KAAvB,GAA+B,CAAC,CAF/C;AAIAgB,IAAAA,YAAY,CAACC,QAAD,CAAZ;AACH,GAND;;AAQA,QAAMI,UAAU,GAAG,CAACjB,cAAD,gBACf,6BAAC,mBAAD;AACI,IAAA,QAAQ,eAAE,6BAAC,kBAAD,OADd;AAEI,IAAA,KAAK,EAAE,UAFX;AAGI,IAAA,QAAQ,EAAEH,QAAQ,IAAK,CAACI,QAAD,IAAaE,IAAI,IAAIO,SAHhD;AAII,IAAA,OAAO,EAAEI,eAJb;AAKI,IAAA,IAAI,EAAE,OALV;AAMI,IAAA,KAAK,EAAEnB,QAAQ,GAAGc,MAAM,CAACxB,UAAV,GAAuBwB,MAAM,CAAC1B;AANjD,IADe,GASf,IATJ;AAWA,QAAMmC,UAAU,GAAG,CAACnB,cAAD,gBACf,6BAAC,mBAAD;AACI,IAAA,QAAQ,eAAE,6BAAC,mBAAD,OADd;AAEI,IAAA,KAAK,EAAE,UAFX;AAGI,IAAA,QAAQ,EAAEF,QAAQ,IAAK,CAACI,QAAD,IAAaE,IAAI,GAAGT,UAAP,GAAoBiB,QAH5D;AAII,IAAA,OAAO,EAAEK,eAJb;AAKI,IAAA,IAAI,EAAE,OALV;AAMI,IAAA,KAAK,EAAErB,QAAQ,GAAGc,MAAM,CAACnB,UAAV,GAAuBmB,MAAM,CAACrB;AANjD,IADe,GASf,IATJ;AAWA,QAAMV,KAAK,GAAG,CAACoB,aAAD,GACV,kBAAMqB,CAAC,IAAIf,UAAU,CAAC;AAAEC,IAAAA,KAAK,EAAEc,CAAT;AAAYtB,IAAAA,QAAZ;AAAsBuB,IAAAA,QAAQ,EAAED,CAAC,KAAKhB;AAAtC,GAAD,CAArB,EAAqEP,KAArE,CADU,GAEV,IAFJ;AAIA,QAAMyB,cAAc,GAAG;AACnBd,IAAAA,KAAK,EAAE,iBAAI,CACPE,MAAM,CAACpC,IADA,EAEPsB,QAAQ,GAAGc,MAAM,CAAChC,UAAV,GAAuBgC,MAAM,CAACnC,UAF/B,EAGPiC,KAHO,CAAJ,CADY;AAMnB,OAAGC;AANgB,GAAvB;;AASA,MAAIb,QAAJ,EAAc;AACV,wBACI,6BAAC,iBAAD,EAAU0B,cAAV,eACI,6BAAC,iBAAD;AAAM,MAAA,KAAK,EAAE,iBAAIZ,MAAM,CAAC3B,cAAX;AAAb,OACKa,QADL,EAEKsB,UAFL,EAGKC,UAHL,CADJ,eAOI,6BAAC,iBAAD;AAAM,MAAA,KAAK,EAAE,iBAAIT,MAAM,CAAC/B,KAAX;AAAb,OACKA,KADL,CAPJ,CADJ;AAaH;;AAED,sBACI,6BAAC,iBAAD,EAAU2C,cAAV,EACKJ,UADL,EAEKvC,KAFL,EAGKwC,UAHL,CADJ;AAOH;;AAAA","sourcesContent":["import React from 'react';\nimport { View } from 'react-native';\nimport { ChevronLeft, ChevronRight } from '@fountain-ui/icons';\nimport { NamedStylesStringUnion, UseStyles } from '@fountain-ui/styles';\nimport { times } from '@fountain-ui/utils';\nimport { css, useTheme } from '../styles';\nimport IconButton from '../IconButton';\nimport PaginationItem from '../PaginationItem';\nimport type PaginationProps from './PaginationProps';\n\ntype PaginationStyleKeys =\n | 'root'\n | 'rootInline'\n | 'rootAnchor'\n | 'items'\n | 'arrowContainer'\n | 'prevInline'\n | 'prevAnchor'\n | 'nextInline'\n | 'nextAnchor';\n\ntype PaginationStyles = NamedStylesStringUnion<PaginationStyleKeys>;\n\nconst useStyles: UseStyles<PaginationStyles> = function (): PaginationStyles {\n const theme = useTheme();\n\n return {\n root: {},\n rootInline: {\n flexDirection: 'row',\n alignItems: 'center',\n },\n rootAnchor: {\n flexDirection: 'column',\n },\n items: {\n flexDirection: 'row',\n justifyContent: 'center',\n marginTop: theme.spacing(2),\n },\n arrowContainer: {\n flexDirection: 'column',\n justifyContent: 'center',\n },\n prevInline: {\n marginRight: theme.spacing(1),\n },\n prevAnchor: {\n position: 'absolute',\n left: -24,\n },\n nextInline: {\n marginLeft: theme.spacing(1),\n },\n nextAnchor: {\n position: 'absolute',\n right: -24,\n },\n };\n};\n\nexport default function Pagination(props: PaginationProps) {\n const {\n bundleSize = 1,\n children,\n count,\n disabled = false,\n hideIndicator = false,\n hideNextButton = false,\n hidePrevButton = false,\n infinite = false,\n onChange,\n page,\n renderItem = ({ index, ...rest }) => <PaginationItem key={`${index}`} {...rest}/>,\n style,\n ...otherProps\n } = props;\n\n const styles = useStyles();\n\n const firstPage = 0;\n const lastPage = count - 1;\n\n const handleChange = (nextPage: number) => {\n if (nextPage >= firstPage && nextPage <= lastPage) {\n if (onChange) {\n onChange(nextPage);\n }\n }\n };\n\n const handlePrevPress = () => {\n const prevPage = page - bundleSize >= firstPage\n ? page - bundleSize\n : (infinite ? count - bundleSize + page : -1);\n\n handleChange(prevPage);\n };\n\n const handleNextPress = () => {\n const nextPage = page + bundleSize <= lastPage\n ? page + bundleSize\n : (infinite ? page + bundleSize - count : -1);\n\n handleChange(nextPage);\n };\n\n const prevButton = !hidePrevButton ? (\n <IconButton\n children={<ChevronLeft/>}\n color={'tertiary'}\n disabled={disabled || (!infinite && page <= firstPage)}\n onPress={handlePrevPress}\n size={'small'}\n style={children ? styles.prevAnchor : styles.prevInline}\n />\n ) : null;\n\n const nextButton = !hideNextButton ? (\n <IconButton\n children={<ChevronRight/>}\n color={'tertiary'}\n disabled={disabled || (!infinite && page + bundleSize > lastPage)}\n onPress={handleNextPress}\n size={'small'}\n style={children ? styles.nextAnchor : styles.nextInline}\n />\n ) : null;\n\n const items = !hideIndicator ? (\n times(i => renderItem({ index: i, disabled, selected: i === page }), count)\n ) : null;\n\n const containerProps = {\n style: css([\n styles.root,\n children ? styles.rootAnchor : styles.rootInline,\n style,\n ]),\n ...otherProps,\n };\n\n if (children) {\n return (\n <View {...containerProps}>\n <View style={css(styles.arrowContainer)}>\n {children}\n {prevButton}\n {nextButton}\n </View>\n\n <View style={css(styles.items)}>\n {items}\n </View>\n </View>\n );\n }\n\n return (\n <View {...containerProps}>\n {prevButton}\n {items}\n {nextButton}\n </View>\n );\n};\n"]}
|
|
@@ -35,7 +35,7 @@ export default function Accordion(props) {
|
|
|
35
35
|
|
|
36
36
|
const onPress = () => {
|
|
37
37
|
setIsExpanded(prev => !prev);
|
|
38
|
-
rotate.value = Animated.withTiming(isExpanded ? 180 : 0, ANIMATION_OPTION);
|
|
38
|
+
rotate.value = Animated.withTiming(!isExpanded ? 180 : 0, ANIMATION_OPTION);
|
|
39
39
|
};
|
|
40
40
|
|
|
41
41
|
return /*#__PURE__*/React.createElement(Column, null, /*#__PURE__*/React.createElement(ButtonBase, {
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
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,CAAoB,CAACV,UAAD,GAAc,GAAd,GAAoB,CAAxC,EAA2ChB,gBAA3C,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"]}
|
|
@@ -2,10 +2,10 @@ function _extends() { _extends = Object.assign || function (target) { for (var i
|
|
|
2
2
|
|
|
3
3
|
import React from 'react';
|
|
4
4
|
import { View } from 'react-native';
|
|
5
|
+
import { ChevronLeft, ChevronRight } from '@fountain-ui/icons';
|
|
5
6
|
import { times } from '@fountain-ui/utils';
|
|
6
|
-
import Fab from '../Fab';
|
|
7
7
|
import { css, useTheme } from '../styles';
|
|
8
|
-
import
|
|
8
|
+
import IconButton from '../IconButton';
|
|
9
9
|
import PaginationItem from '../PaginationItem';
|
|
10
10
|
|
|
11
11
|
const useStyles = function () {
|
|
@@ -47,9 +47,11 @@ const useStyles = function () {
|
|
|
47
47
|
|
|
48
48
|
export default function Pagination(props) {
|
|
49
49
|
const {
|
|
50
|
+
bundleSize = 1,
|
|
50
51
|
children,
|
|
51
52
|
count,
|
|
52
53
|
disabled = false,
|
|
54
|
+
hideIndicator = false,
|
|
53
55
|
hideNextButton = false,
|
|
54
56
|
hidePrevButton = false,
|
|
55
57
|
infinite = false,
|
|
@@ -77,33 +79,36 @@ export default function Pagination(props) {
|
|
|
77
79
|
};
|
|
78
80
|
|
|
79
81
|
const handlePrevPress = () => {
|
|
80
|
-
const prevPage = page
|
|
82
|
+
const prevPage = page - bundleSize >= firstPage ? page - bundleSize : infinite ? count - bundleSize + page : -1;
|
|
81
83
|
handleChange(prevPage);
|
|
82
84
|
};
|
|
83
85
|
|
|
84
86
|
const handleNextPress = () => {
|
|
85
|
-
const nextPage = page
|
|
87
|
+
const nextPage = page + bundleSize <= lastPage ? page + bundleSize : infinite ? page + bundleSize - count : -1;
|
|
86
88
|
handleChange(nextPage);
|
|
87
|
-
};
|
|
88
|
-
|
|
89
|
+
};
|
|
89
90
|
|
|
90
|
-
const prevButton = !hidePrevButton ? /*#__PURE__*/React.createElement(
|
|
91
|
-
children: /*#__PURE__*/React.createElement(
|
|
91
|
+
const prevButton = !hidePrevButton ? /*#__PURE__*/React.createElement(IconButton, {
|
|
92
|
+
children: /*#__PURE__*/React.createElement(ChevronLeft, null),
|
|
93
|
+
color: 'tertiary',
|
|
92
94
|
disabled: disabled || !infinite && page <= firstPage,
|
|
93
95
|
onPress: handlePrevPress,
|
|
96
|
+
size: 'small',
|
|
94
97
|
style: children ? styles.prevAnchor : styles.prevInline
|
|
95
98
|
}) : null;
|
|
96
|
-
const nextButton = !hideNextButton ? /*#__PURE__*/React.createElement(
|
|
97
|
-
children: /*#__PURE__*/React.createElement(
|
|
98
|
-
|
|
99
|
+
const nextButton = !hideNextButton ? /*#__PURE__*/React.createElement(IconButton, {
|
|
100
|
+
children: /*#__PURE__*/React.createElement(ChevronRight, null),
|
|
101
|
+
color: 'tertiary',
|
|
102
|
+
disabled: disabled || !infinite && page + bundleSize > lastPage,
|
|
99
103
|
onPress: handleNextPress,
|
|
104
|
+
size: 'small',
|
|
100
105
|
style: children ? styles.nextAnchor : styles.nextInline
|
|
101
106
|
}) : null;
|
|
102
|
-
const items = times(i => renderItem({
|
|
107
|
+
const items = !hideIndicator ? times(i => renderItem({
|
|
103
108
|
index: i,
|
|
104
109
|
disabled,
|
|
105
110
|
selected: i === page
|
|
106
|
-
}), count);
|
|
111
|
+
}), count) : null;
|
|
107
112
|
const containerProps = {
|
|
108
113
|
style: css([styles.root, children ? styles.rootAnchor : styles.rootInline, style]),
|
|
109
114
|
...otherProps
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Pagination.tsx"],"names":["React","View","
|
|
1
|
+
{"version":3,"sources":["Pagination.tsx"],"names":["React","View","ChevronLeft","ChevronRight","times","css","useTheme","IconButton","PaginationItem","useStyles","theme","root","rootInline","flexDirection","alignItems","rootAnchor","items","justifyContent","marginTop","spacing","arrowContainer","prevInline","marginRight","prevAnchor","position","left","nextInline","marginLeft","nextAnchor","right","Pagination","props","bundleSize","children","count","disabled","hideIndicator","hideNextButton","hidePrevButton","infinite","onChange","page","renderItem","index","rest","style","otherProps","styles","firstPage","lastPage","handleChange","nextPage","handlePrevPress","prevPage","handleNextPress","prevButton","nextButton","i","selected","containerProps"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { View } from 'react-native';\nimport { ChevronLeft, ChevronRight } from '@fountain-ui/icons';\nimport { NamedStylesStringUnion, UseStyles } from '@fountain-ui/styles';\nimport { times } from '@fountain-ui/utils';\nimport { css, useTheme } from '../styles';\nimport IconButton from '../IconButton';\nimport PaginationItem from '../PaginationItem';\nimport type PaginationProps from './PaginationProps';\n\ntype PaginationStyleKeys =\n | 'root'\n | 'rootInline'\n | 'rootAnchor'\n | 'items'\n | 'arrowContainer'\n | 'prevInline'\n | 'prevAnchor'\n | 'nextInline'\n | 'nextAnchor';\n\ntype PaginationStyles = NamedStylesStringUnion<PaginationStyleKeys>;\n\nconst useStyles: UseStyles<PaginationStyles> = function (): PaginationStyles {\n const theme = useTheme();\n\n return {\n root: {},\n rootInline: {\n flexDirection: 'row',\n alignItems: 'center',\n },\n rootAnchor: {\n flexDirection: 'column',\n },\n items: {\n flexDirection: 'row',\n justifyContent: 'center',\n marginTop: theme.spacing(2),\n },\n arrowContainer: {\n flexDirection: 'column',\n justifyContent: 'center',\n },\n prevInline: {\n marginRight: theme.spacing(1),\n },\n prevAnchor: {\n position: 'absolute',\n left: -24,\n },\n nextInline: {\n marginLeft: theme.spacing(1),\n },\n nextAnchor: {\n position: 'absolute',\n right: -24,\n },\n };\n};\n\nexport default function Pagination(props: PaginationProps) {\n const {\n bundleSize = 1,\n children,\n count,\n disabled = false,\n hideIndicator = false,\n hideNextButton = false,\n hidePrevButton = false,\n infinite = false,\n onChange,\n page,\n renderItem = ({ index, ...rest }) => <PaginationItem key={`${index}`} {...rest}/>,\n style,\n ...otherProps\n } = props;\n\n const styles = useStyles();\n\n const firstPage = 0;\n const lastPage = count - 1;\n\n const handleChange = (nextPage: number) => {\n if (nextPage >= firstPage && nextPage <= lastPage) {\n if (onChange) {\n onChange(nextPage);\n }\n }\n };\n\n const handlePrevPress = () => {\n const prevPage = page - bundleSize >= firstPage\n ? page - bundleSize\n : (infinite ? count - bundleSize + page : -1);\n\n handleChange(prevPage);\n };\n\n const handleNextPress = () => {\n const nextPage = page + bundleSize <= lastPage\n ? page + bundleSize\n : (infinite ? page + bundleSize - count : -1);\n\n handleChange(nextPage);\n };\n\n const prevButton = !hidePrevButton ? (\n <IconButton\n children={<ChevronLeft/>}\n color={'tertiary'}\n disabled={disabled || (!infinite && page <= firstPage)}\n onPress={handlePrevPress}\n size={'small'}\n style={children ? styles.prevAnchor : styles.prevInline}\n />\n ) : null;\n\n const nextButton = !hideNextButton ? (\n <IconButton\n children={<ChevronRight/>}\n color={'tertiary'}\n disabled={disabled || (!infinite && page + bundleSize > lastPage)}\n onPress={handleNextPress}\n size={'small'}\n style={children ? styles.nextAnchor : styles.nextInline}\n />\n ) : null;\n\n const items = !hideIndicator ? (\n times(i => renderItem({ index: i, disabled, selected: i === page }), count)\n ) : null;\n\n const containerProps = {\n style: css([\n styles.root,\n children ? styles.rootAnchor : styles.rootInline,\n style,\n ]),\n ...otherProps,\n };\n\n if (children) {\n return (\n <View {...containerProps}>\n <View style={css(styles.arrowContainer)}>\n {children}\n {prevButton}\n {nextButton}\n </View>\n\n <View style={css(styles.items)}>\n {items}\n </View>\n </View>\n );\n }\n\n return (\n <View {...containerProps}>\n {prevButton}\n {items}\n {nextButton}\n </View>\n );\n};\n"]}
|
|
@@ -16,6 +16,11 @@ export interface PaginationRenderItemParams {
|
|
|
16
16
|
selected: boolean;
|
|
17
17
|
}
|
|
18
18
|
export default interface PaginationProps extends OverridableComponentProps<ViewProps, {
|
|
19
|
+
/**
|
|
20
|
+
* The Number of pages that change when the button is pressed
|
|
21
|
+
* @default 1
|
|
22
|
+
*/
|
|
23
|
+
bundleSize?: number;
|
|
19
24
|
/**
|
|
20
25
|
* The pagination will be added relative to this node.
|
|
21
26
|
*/
|
|
@@ -29,6 +34,11 @@ export default interface PaginationProps extends OverridableComponentProps<ViewP
|
|
|
29
34
|
* @default false
|
|
30
35
|
*/
|
|
31
36
|
disabled?: boolean;
|
|
37
|
+
/**
|
|
38
|
+
* If `true`, hide the page indicator.
|
|
39
|
+
* @default false
|
|
40
|
+
*/
|
|
41
|
+
hideIndicator?: boolean;
|
|
32
42
|
/**
|
|
33
43
|
* If `true`, hide the next-page button.
|
|
34
44
|
* @default false
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fountain-ui/core",
|
|
3
|
-
"version": "1.11.
|
|
3
|
+
"version": "1.11.11",
|
|
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": "f8d02fe9966aa18f0e970ff7fb876d1822352693"
|
|
71
71
|
}
|
|
@@ -40,7 +40,7 @@ export default function Accordion(props: AccordionProps) {
|
|
|
40
40
|
|
|
41
41
|
const onPress = () => {
|
|
42
42
|
setIsExpanded(prev => !prev);
|
|
43
|
-
rotate.value = Animated.withTiming(isExpanded ? 180 : 0, ANIMATION_OPTION);
|
|
43
|
+
rotate.value = Animated.withTiming(!isExpanded ? 180 : 0, ANIMATION_OPTION);
|
|
44
44
|
};
|
|
45
45
|
|
|
46
46
|
return (
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { View } from 'react-native';
|
|
3
|
+
import { ChevronLeft, ChevronRight } from '@fountain-ui/icons';
|
|
3
4
|
import { NamedStylesStringUnion, UseStyles } from '@fountain-ui/styles';
|
|
4
5
|
import { times } from '@fountain-ui/utils';
|
|
5
|
-
import Fab from '../Fab';
|
|
6
6
|
import { css, useTheme } from '../styles';
|
|
7
|
-
import
|
|
7
|
+
import IconButton from '../IconButton';
|
|
8
8
|
import PaginationItem from '../PaginationItem';
|
|
9
9
|
import type PaginationProps from './PaginationProps';
|
|
10
10
|
|
|
@@ -61,9 +61,11 @@ const useStyles: UseStyles<PaginationStyles> = function (): PaginationStyles {
|
|
|
61
61
|
|
|
62
62
|
export default function Pagination(props: PaginationProps) {
|
|
63
63
|
const {
|
|
64
|
+
bundleSize = 1,
|
|
64
65
|
children,
|
|
65
66
|
count,
|
|
66
67
|
disabled = false,
|
|
68
|
+
hideIndicator = false,
|
|
67
69
|
hideNextButton = false,
|
|
68
70
|
hidePrevButton = false,
|
|
69
71
|
infinite = false,
|
|
@@ -88,41 +90,46 @@ export default function Pagination(props: PaginationProps) {
|
|
|
88
90
|
};
|
|
89
91
|
|
|
90
92
|
const handlePrevPress = () => {
|
|
91
|
-
const prevPage = page
|
|
92
|
-
? page -
|
|
93
|
-
: (infinite ?
|
|
93
|
+
const prevPage = page - bundleSize >= firstPage
|
|
94
|
+
? page - bundleSize
|
|
95
|
+
: (infinite ? count - bundleSize + page : -1);
|
|
94
96
|
|
|
95
97
|
handleChange(prevPage);
|
|
96
98
|
};
|
|
97
99
|
|
|
98
100
|
const handleNextPress = () => {
|
|
99
|
-
const nextPage = page
|
|
100
|
-
? page +
|
|
101
|
-
: (infinite ?
|
|
101
|
+
const nextPage = page + bundleSize <= lastPage
|
|
102
|
+
? page + bundleSize
|
|
103
|
+
: (infinite ? page + bundleSize - count : -1);
|
|
102
104
|
|
|
103
105
|
handleChange(nextPage);
|
|
104
106
|
};
|
|
105
107
|
|
|
106
|
-
//TODO: Need to change arrow icons
|
|
107
108
|
const prevButton = !hidePrevButton ? (
|
|
108
|
-
<
|
|
109
|
-
children={<
|
|
109
|
+
<IconButton
|
|
110
|
+
children={<ChevronLeft/>}
|
|
111
|
+
color={'tertiary'}
|
|
110
112
|
disabled={disabled || (!infinite && page <= firstPage)}
|
|
111
113
|
onPress={handlePrevPress}
|
|
114
|
+
size={'small'}
|
|
112
115
|
style={children ? styles.prevAnchor : styles.prevInline}
|
|
113
116
|
/>
|
|
114
117
|
) : null;
|
|
115
118
|
|
|
116
119
|
const nextButton = !hideNextButton ? (
|
|
117
|
-
<
|
|
118
|
-
children={<
|
|
119
|
-
|
|
120
|
+
<IconButton
|
|
121
|
+
children={<ChevronRight/>}
|
|
122
|
+
color={'tertiary'}
|
|
123
|
+
disabled={disabled || (!infinite && page + bundleSize > lastPage)}
|
|
120
124
|
onPress={handleNextPress}
|
|
125
|
+
size={'small'}
|
|
121
126
|
style={children ? styles.nextAnchor : styles.nextInline}
|
|
122
127
|
/>
|
|
123
128
|
) : null;
|
|
124
129
|
|
|
125
|
-
const items =
|
|
130
|
+
const items = !hideIndicator ? (
|
|
131
|
+
times(i => renderItem({ index: i, disabled, selected: i === page }), count)
|
|
132
|
+
) : null;
|
|
126
133
|
|
|
127
134
|
const containerProps = {
|
|
128
135
|
style: css([
|
|
@@ -20,6 +20,12 @@ export interface PaginationRenderItemParams {
|
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
export default interface PaginationProps extends OverridableComponentProps<ViewProps, {
|
|
23
|
+
/**
|
|
24
|
+
* The Number of pages that change when the button is pressed
|
|
25
|
+
* @default 1
|
|
26
|
+
*/
|
|
27
|
+
bundleSize?: number,
|
|
28
|
+
|
|
23
29
|
/**
|
|
24
30
|
* The pagination will be added relative to this node.
|
|
25
31
|
*/
|
|
@@ -36,6 +42,13 @@ export default interface PaginationProps extends OverridableComponentProps<ViewP
|
|
|
36
42
|
*/
|
|
37
43
|
disabled?: boolean;
|
|
38
44
|
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* If `true`, hide the page indicator.
|
|
48
|
+
* @default false
|
|
49
|
+
*/
|
|
50
|
+
hideIndicator?: boolean,
|
|
51
|
+
|
|
39
52
|
/**
|
|
40
53
|
* If `true`, hide the next-page button.
|
|
41
54
|
* @default false
|