@kiosinc/commons-rn 0.1.34 → 0.1.35
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/lib/commonjs/selectBusiness/SelectBusiness.js +40 -12
- package/lib/commonjs/selectBusiness/SelectBusiness.js.map +1 -1
- package/lib/commonjs/selectBusiness/tick.svg +3 -0
- package/lib/module/selectBusiness/SelectBusiness.js +40 -14
- package/lib/module/selectBusiness/SelectBusiness.js.map +1 -1
- package/lib/module/selectBusiness/tick.svg +3 -0
- package/lib/typescript/src/selectBusiness/SelectBusiness.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/selectBusiness/SelectBusiness.tsx +63 -20
- package/src/selectBusiness/tick.svg +3 -0
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.SelectBusiness = void 0;
|
|
7
|
-
var _react =
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _components = require("../components");
|
|
9
9
|
var _flashList = require("@shopify/flash-list");
|
|
10
10
|
var _reactI18next = require("react-i18next");
|
|
@@ -16,42 +16,65 @@ var _CreateBusinessBottomSheet = require("./CreateBusinessBottomSheet");
|
|
|
16
16
|
var _useBusinesses = require("./useBusinesses");
|
|
17
17
|
var _constants = require("../constants");
|
|
18
18
|
var _useSingleSnapBottomSheetRef = require("./useSingleSnapBottomSheetRef");
|
|
19
|
+
var _tick = _interopRequireDefault(require("./tick.svg"));
|
|
19
20
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
21
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
22
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
20
23
|
const BusinessCard = ({
|
|
21
24
|
business,
|
|
25
|
+
isSelectedBusiness,
|
|
22
26
|
onSelect
|
|
23
27
|
}) => {
|
|
28
|
+
const theme = (0, _reactNativePaper.useTheme)();
|
|
24
29
|
return /*#__PURE__*/_react.default.createElement(_components.Card, {
|
|
25
30
|
bg: "onSecondary",
|
|
26
31
|
p: "16",
|
|
32
|
+
height: 80,
|
|
27
33
|
mx: "2",
|
|
28
34
|
mb: "12",
|
|
29
35
|
mt: "2",
|
|
30
36
|
onPress: onSelect
|
|
37
|
+
}, /*#__PURE__*/_react.default.createElement(_components.View, {
|
|
38
|
+
height: "100%",
|
|
39
|
+
flexDirection: "row",
|
|
40
|
+
justifyContent: 'space-between',
|
|
41
|
+
alignItems: 'center'
|
|
31
42
|
}, /*#__PURE__*/_react.default.createElement(_components.Text, {
|
|
32
43
|
variant: "bodyMedium"
|
|
33
|
-
}, business.name)
|
|
44
|
+
}, business.name), isSelectedBusiness && /*#__PURE__*/_react.default.createElement(_tick.default, {
|
|
45
|
+
height: 20,
|
|
46
|
+
width: 20,
|
|
47
|
+
color: theme.colors.onBackground
|
|
48
|
+
})));
|
|
34
49
|
};
|
|
35
50
|
const SelectBusiness = () => {
|
|
36
51
|
const {
|
|
37
52
|
t
|
|
38
53
|
} = (0, _reactI18next.useTranslation)();
|
|
39
|
-
const [
|
|
54
|
+
const [selectedBusinessId, setBusinessId] = (0, _reactNativeMmkv.useMMKVString)(_constants.MMKV_KEYS.BUSINESS_ID);
|
|
55
|
+
const [searchText, setSearchText] = (0, _react.useState)('');
|
|
40
56
|
const {
|
|
41
|
-
data
|
|
42
|
-
|
|
57
|
+
data = [],
|
|
58
|
+
isFetching,
|
|
43
59
|
isRefetching,
|
|
44
60
|
refetch
|
|
45
61
|
} = (0, _useBusinesses.useBusinesses)();
|
|
46
62
|
const navigation = (0, _native.useNavigation)();
|
|
47
63
|
const queryClient = (0, _reactQuery.useQueryClient)();
|
|
48
64
|
const createBusinessBottomSheet = (0, _useSingleSnapBottomSheetRef.useSingleSnapBottomSheetRef)();
|
|
65
|
+
const [businesses, setBusinesses] = (0, _react.useState)([]);
|
|
66
|
+
(0, _react.useEffect)(() => {
|
|
67
|
+
if (data.length > 0) {
|
|
68
|
+
const filteredBusinesses = data.filter(business => business.name.toLowerCase().search(searchText.trim().toLowerCase()) > -1);
|
|
69
|
+
setBusinesses(filteredBusinesses);
|
|
70
|
+
}
|
|
71
|
+
}, [searchText, data]);
|
|
49
72
|
return /*#__PURE__*/_react.default.createElement(_components.ParentView, {
|
|
50
73
|
flex: 1,
|
|
51
74
|
backgroundColor: "background"
|
|
52
75
|
}, /*#__PURE__*/_react.default.createElement(_components.Header, {
|
|
53
76
|
title: t('home.selectBusiness')
|
|
54
|
-
}), !
|
|
77
|
+
}), searchText.length === 0 && !isFetching && businesses?.length === 0 && /*#__PURE__*/_react.default.createElement(_components.View, {
|
|
55
78
|
position: "absolute",
|
|
56
79
|
height: '100%',
|
|
57
80
|
width: '100%',
|
|
@@ -62,11 +85,15 @@ const SelectBusiness = () => {
|
|
|
62
85
|
}, t('home.noBusiness'))), /*#__PURE__*/_react.default.createElement(_components.View, {
|
|
63
86
|
px: "16",
|
|
64
87
|
flex: 1
|
|
65
|
-
},
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
88
|
+
}, /*#__PURE__*/_react.default.createElement(_components.LineLoader, {
|
|
89
|
+
isLoading: isFetching
|
|
90
|
+
}), /*#__PURE__*/_react.default.createElement(_components.Searchbar, {
|
|
91
|
+
mb: "12",
|
|
92
|
+
bg: "inverseOnSurface",
|
|
93
|
+
value: searchText,
|
|
94
|
+
placeholder: t('home.searchBusiness'),
|
|
95
|
+
onChangeText: setSearchText
|
|
96
|
+
}), !isFetching && /*#__PURE__*/_react.default.createElement(_flashList.FlashList, {
|
|
70
97
|
refreshControl: /*#__PURE__*/_react.default.createElement(_components.RefreshControl, {
|
|
71
98
|
refreshing: isRefetching,
|
|
72
99
|
onRefresh: refetch
|
|
@@ -76,6 +103,7 @@ const SelectBusiness = () => {
|
|
|
76
103
|
renderItem: ({
|
|
77
104
|
item
|
|
78
105
|
}) => /*#__PURE__*/_react.default.createElement(BusinessCard, {
|
|
106
|
+
isSelectedBusiness: item.id === selectedBusinessId,
|
|
79
107
|
onSelect: () => {
|
|
80
108
|
if (navigation.canGoBack()) {
|
|
81
109
|
navigation.goBack();
|
|
@@ -90,7 +118,7 @@ const SelectBusiness = () => {
|
|
|
90
118
|
position: "absolute",
|
|
91
119
|
bottom: 16,
|
|
92
120
|
right: 16
|
|
93
|
-
}, (navigation.canGoBack() || !
|
|
121
|
+
}, (navigation.canGoBack() || !isFetching && businesses?.length === 0) && /*#__PURE__*/_react.default.createElement(_components.FAB, {
|
|
94
122
|
variant: "secondary",
|
|
95
123
|
icon: "plus",
|
|
96
124
|
onPress: createBusinessBottomSheet.expand
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_components","_flashList","_reactI18next","_reactNativePaper","_reactNativeMmkv","_native","_reactQuery","_CreateBusinessBottomSheet","_useBusinesses","_constants","_useSingleSnapBottomSheetRef","_tick","_interopRequireDefault","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","BusinessCard","business","isSelectedBusiness","onSelect","theme","useTheme","createElement","Card","bg","p","height","mx","mb","mt","onPress","View","flexDirection","justifyContent","alignItems","Text","variant","name","width","color","colors","onBackground","SelectBusiness","useTranslation","selectedBusinessId","setBusinessId","useMMKVString","MMKV_KEYS","BUSINESS_ID","searchText","setSearchText","useState","data","isFetching","isRefetching","refetch","useBusinesses","navigation","useNavigation","queryClient","useQueryClient","createBusinessBottomSheet","useSingleSnapBottomSheetRef","businesses","setBusinesses","useEffect","length","filteredBusinesses","filter","toLowerCase","search","trim","ParentView","flex","backgroundColor","Header","title","position","alignSelf","px","LineLoader","isLoading","Searchbar","value","placeholder","onChangeText","FlashList","refreshControl","RefreshControl","refreshing","onRefresh","showsVerticalScrollIndicator","renderItem","item","id","canGoBack","goBack","clear","estimatedItemSize","bottom","right","FAB","icon","expand","CreateBusinessBottomSheet","ref","close","exports"],"sourceRoot":"../../../src","sources":["selectBusiness/SelectBusiness.tsx"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { Card, FAB, Header, ParentView, RefreshControl, Text, View } from '../components';
|
|
1
|
+
import React, { useEffect, useState } from 'react';
|
|
2
|
+
import { Card, FAB, Header, LineLoader, ParentView, RefreshControl, Searchbar, Text, View } from '../components';
|
|
3
3
|
import { FlashList } from '@shopify/flash-list';
|
|
4
4
|
import { useTranslation } from 'react-i18next';
|
|
5
|
-
import {
|
|
5
|
+
import { useTheme } from 'react-native-paper';
|
|
6
6
|
import { useMMKVString } from 'react-native-mmkv';
|
|
7
7
|
import { useNavigation } from '@react-navigation/native';
|
|
8
8
|
import { useQueryClient } from '@tanstack/react-query';
|
|
@@ -10,41 +10,62 @@ import { CreateBusinessBottomSheet } from './CreateBusinessBottomSheet';
|
|
|
10
10
|
import { useBusinesses } from './useBusinesses';
|
|
11
11
|
import { MMKV_KEYS } from '../constants';
|
|
12
12
|
import { useSingleSnapBottomSheetRef } from './useSingleSnapBottomSheetRef';
|
|
13
|
+
import Tick from './tick.svg';
|
|
13
14
|
const BusinessCard = ({
|
|
14
15
|
business,
|
|
16
|
+
isSelectedBusiness,
|
|
15
17
|
onSelect
|
|
16
18
|
}) => {
|
|
19
|
+
const theme = useTheme();
|
|
17
20
|
return /*#__PURE__*/React.createElement(Card, {
|
|
18
21
|
bg: "onSecondary",
|
|
19
22
|
p: "16",
|
|
23
|
+
height: 80,
|
|
20
24
|
mx: "2",
|
|
21
25
|
mb: "12",
|
|
22
26
|
mt: "2",
|
|
23
27
|
onPress: onSelect
|
|
28
|
+
}, /*#__PURE__*/React.createElement(View, {
|
|
29
|
+
height: "100%",
|
|
30
|
+
flexDirection: "row",
|
|
31
|
+
justifyContent: 'space-between',
|
|
32
|
+
alignItems: 'center'
|
|
24
33
|
}, /*#__PURE__*/React.createElement(Text, {
|
|
25
34
|
variant: "bodyMedium"
|
|
26
|
-
}, business.name)
|
|
35
|
+
}, business.name), isSelectedBusiness && /*#__PURE__*/React.createElement(Tick, {
|
|
36
|
+
height: 20,
|
|
37
|
+
width: 20,
|
|
38
|
+
color: theme.colors.onBackground
|
|
39
|
+
})));
|
|
27
40
|
};
|
|
28
41
|
export const SelectBusiness = () => {
|
|
29
42
|
const {
|
|
30
43
|
t
|
|
31
44
|
} = useTranslation();
|
|
32
|
-
const [
|
|
45
|
+
const [selectedBusinessId, setBusinessId] = useMMKVString(MMKV_KEYS.BUSINESS_ID);
|
|
46
|
+
const [searchText, setSearchText] = useState('');
|
|
33
47
|
const {
|
|
34
|
-
data
|
|
35
|
-
|
|
48
|
+
data = [],
|
|
49
|
+
isFetching,
|
|
36
50
|
isRefetching,
|
|
37
51
|
refetch
|
|
38
52
|
} = useBusinesses();
|
|
39
53
|
const navigation = useNavigation();
|
|
40
54
|
const queryClient = useQueryClient();
|
|
41
55
|
const createBusinessBottomSheet = useSingleSnapBottomSheetRef();
|
|
56
|
+
const [businesses, setBusinesses] = useState([]);
|
|
57
|
+
useEffect(() => {
|
|
58
|
+
if (data.length > 0) {
|
|
59
|
+
const filteredBusinesses = data.filter(business => business.name.toLowerCase().search(searchText.trim().toLowerCase()) > -1);
|
|
60
|
+
setBusinesses(filteredBusinesses);
|
|
61
|
+
}
|
|
62
|
+
}, [searchText, data]);
|
|
42
63
|
return /*#__PURE__*/React.createElement(ParentView, {
|
|
43
64
|
flex: 1,
|
|
44
65
|
backgroundColor: "background"
|
|
45
66
|
}, /*#__PURE__*/React.createElement(Header, {
|
|
46
67
|
title: t('home.selectBusiness')
|
|
47
|
-
}), !
|
|
68
|
+
}), searchText.length === 0 && !isFetching && businesses?.length === 0 && /*#__PURE__*/React.createElement(View, {
|
|
48
69
|
position: "absolute",
|
|
49
70
|
height: '100%',
|
|
50
71
|
width: '100%',
|
|
@@ -55,11 +76,15 @@ export const SelectBusiness = () => {
|
|
|
55
76
|
}, t('home.noBusiness'))), /*#__PURE__*/React.createElement(View, {
|
|
56
77
|
px: "16",
|
|
57
78
|
flex: 1
|
|
58
|
-
},
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
79
|
+
}, /*#__PURE__*/React.createElement(LineLoader, {
|
|
80
|
+
isLoading: isFetching
|
|
81
|
+
}), /*#__PURE__*/React.createElement(Searchbar, {
|
|
82
|
+
mb: "12",
|
|
83
|
+
bg: "inverseOnSurface",
|
|
84
|
+
value: searchText,
|
|
85
|
+
placeholder: t('home.searchBusiness'),
|
|
86
|
+
onChangeText: setSearchText
|
|
87
|
+
}), !isFetching && /*#__PURE__*/React.createElement(FlashList, {
|
|
63
88
|
refreshControl: /*#__PURE__*/React.createElement(RefreshControl, {
|
|
64
89
|
refreshing: isRefetching,
|
|
65
90
|
onRefresh: refetch
|
|
@@ -69,6 +94,7 @@ export const SelectBusiness = () => {
|
|
|
69
94
|
renderItem: ({
|
|
70
95
|
item
|
|
71
96
|
}) => /*#__PURE__*/React.createElement(BusinessCard, {
|
|
97
|
+
isSelectedBusiness: item.id === selectedBusinessId,
|
|
72
98
|
onSelect: () => {
|
|
73
99
|
if (navigation.canGoBack()) {
|
|
74
100
|
navigation.goBack();
|
|
@@ -83,7 +109,7 @@ export const SelectBusiness = () => {
|
|
|
83
109
|
position: "absolute",
|
|
84
110
|
bottom: 16,
|
|
85
111
|
right: 16
|
|
86
|
-
}, (navigation.canGoBack() || !
|
|
112
|
+
}, (navigation.canGoBack() || !isFetching && businesses?.length === 0) && /*#__PURE__*/React.createElement(FAB, {
|
|
87
113
|
variant: "secondary",
|
|
88
114
|
icon: "plus",
|
|
89
115
|
onPress: createBusinessBottomSheet.expand
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Card","FAB","Header","ParentView","RefreshControl","Text","View","FlashList","useTranslation","
|
|
1
|
+
{"version":3,"names":["React","useEffect","useState","Card","FAB","Header","LineLoader","ParentView","RefreshControl","Searchbar","Text","View","FlashList","useTranslation","useTheme","useMMKVString","useNavigation","useQueryClient","CreateBusinessBottomSheet","useBusinesses","MMKV_KEYS","useSingleSnapBottomSheetRef","Tick","BusinessCard","business","isSelectedBusiness","onSelect","theme","createElement","bg","p","height","mx","mb","mt","onPress","flexDirection","justifyContent","alignItems","variant","name","width","color","colors","onBackground","SelectBusiness","t","selectedBusinessId","setBusinessId","BUSINESS_ID","searchText","setSearchText","data","isFetching","isRefetching","refetch","navigation","queryClient","createBusinessBottomSheet","businesses","setBusinesses","length","filteredBusinesses","filter","toLowerCase","search","trim","flex","backgroundColor","title","position","alignSelf","px","isLoading","value","placeholder","onChangeText","refreshControl","refreshing","onRefresh","showsVerticalScrollIndicator","renderItem","item","id","canGoBack","goBack","clear","estimatedItemSize","bottom","right","icon","expand","ref","close"],"sourceRoot":"../../../src","sources":["selectBusiness/SelectBusiness.tsx"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectBusiness.d.ts","sourceRoot":"","sources":["../../../../src/selectBusiness/SelectBusiness.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"SelectBusiness.d.ts","sourceRoot":"","sources":["../../../../src/selectBusiness/SelectBusiness.tsx"],"names":[],"mappings":";AA2DA,eAAO,MAAM,cAAc,mBA6F1B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,16 +1,18 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React, { useEffect, useState } from 'react';
|
|
2
2
|
import {
|
|
3
3
|
Card,
|
|
4
4
|
FAB,
|
|
5
5
|
Header,
|
|
6
|
+
LineLoader,
|
|
6
7
|
ParentView,
|
|
7
8
|
RefreshControl,
|
|
9
|
+
Searchbar,
|
|
8
10
|
Text,
|
|
9
11
|
View,
|
|
10
12
|
} from '../components';
|
|
11
13
|
import { FlashList } from '@shopify/flash-list';
|
|
12
14
|
import { useTranslation } from 'react-i18next';
|
|
13
|
-
import {
|
|
15
|
+
import { useTheme } from 'react-native-paper';
|
|
14
16
|
import { useMMKVString } from 'react-native-mmkv';
|
|
15
17
|
import { type NavigationProp, useNavigation } from '@react-navigation/native';
|
|
16
18
|
import { useQueryClient } from '@tanstack/react-query';
|
|
@@ -18,40 +20,77 @@ import { CreateBusinessBottomSheet } from './CreateBusinessBottomSheet';
|
|
|
18
20
|
import { useBusinesses } from './useBusinesses';
|
|
19
21
|
import { MMKV_KEYS } from '../constants';
|
|
20
22
|
import { useSingleSnapBottomSheetRef } from './useSingleSnapBottomSheetRef';
|
|
23
|
+
import Tick from './tick.svg';
|
|
21
24
|
|
|
22
25
|
const BusinessCard = ({
|
|
23
26
|
business,
|
|
27
|
+
isSelectedBusiness,
|
|
24
28
|
onSelect,
|
|
25
29
|
}: {
|
|
26
30
|
business: { id: string; name: string };
|
|
27
31
|
onSelect: () => void;
|
|
32
|
+
isSelectedBusiness: boolean;
|
|
28
33
|
}) => {
|
|
34
|
+
const theme = useTheme();
|
|
29
35
|
return (
|
|
30
|
-
<Card
|
|
31
|
-
|
|
36
|
+
<Card
|
|
37
|
+
bg="onSecondary"
|
|
38
|
+
p="16"
|
|
39
|
+
height={80}
|
|
40
|
+
mx="2"
|
|
41
|
+
mb="12"
|
|
42
|
+
mt="2"
|
|
43
|
+
onPress={onSelect}
|
|
44
|
+
>
|
|
45
|
+
<View
|
|
46
|
+
height="100%"
|
|
47
|
+
flexDirection="row"
|
|
48
|
+
justifyContent={'space-between'}
|
|
49
|
+
alignItems={'center'}
|
|
50
|
+
>
|
|
51
|
+
<Text variant="bodyMedium">{business.name}</Text>
|
|
52
|
+
{isSelectedBusiness && (
|
|
53
|
+
<Tick height={20} width={20} color={theme.colors.onBackground} />
|
|
54
|
+
)}
|
|
55
|
+
</View>
|
|
32
56
|
</Card>
|
|
33
57
|
);
|
|
34
58
|
};
|
|
35
59
|
|
|
36
60
|
export const SelectBusiness = () => {
|
|
37
61
|
const { t } = useTranslation();
|
|
38
|
-
const [
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
isRefetching,
|
|
44
|
-
refetch,
|
|
45
|
-
} = useBusinesses();
|
|
62
|
+
const [selectedBusinessId, setBusinessId] = useMMKVString(
|
|
63
|
+
MMKV_KEYS.BUSINESS_ID
|
|
64
|
+
);
|
|
65
|
+
const [searchText, setSearchText] = useState('');
|
|
66
|
+
const { data = [], isFetching, isRefetching, refetch } = useBusinesses();
|
|
46
67
|
|
|
47
68
|
const navigation = useNavigation<NavigationProp<RootStackType>>();
|
|
48
69
|
const queryClient = useQueryClient();
|
|
49
70
|
const createBusinessBottomSheet = useSingleSnapBottomSheetRef();
|
|
50
71
|
|
|
72
|
+
const [businesses, setBusinesses] = useState<
|
|
73
|
+
Array<{
|
|
74
|
+
id: string;
|
|
75
|
+
name: string;
|
|
76
|
+
}>
|
|
77
|
+
>([]);
|
|
78
|
+
|
|
79
|
+
useEffect(() => {
|
|
80
|
+
if (data.length > 0) {
|
|
81
|
+
const filteredBusinesses = data.filter(
|
|
82
|
+
(business: any) =>
|
|
83
|
+
business.name.toLowerCase().search(searchText.trim().toLowerCase()) >
|
|
84
|
+
-1
|
|
85
|
+
);
|
|
86
|
+
setBusinesses(filteredBusinesses);
|
|
87
|
+
}
|
|
88
|
+
}, [searchText, data]);
|
|
89
|
+
|
|
51
90
|
return (
|
|
52
91
|
<ParentView flex={1} backgroundColor="background">
|
|
53
92
|
<Header title={t('home.selectBusiness')} />
|
|
54
|
-
{!
|
|
93
|
+
{searchText.length === 0 && !isFetching && businesses?.length === 0 && (
|
|
55
94
|
<View
|
|
56
95
|
position="absolute"
|
|
57
96
|
height={'100%'}
|
|
@@ -63,12 +102,15 @@ export const SelectBusiness = () => {
|
|
|
63
102
|
</View>
|
|
64
103
|
)}
|
|
65
104
|
<View px="16" flex={1}>
|
|
66
|
-
{
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
105
|
+
<LineLoader isLoading={isFetching} />
|
|
106
|
+
<Searchbar
|
|
107
|
+
mb="12"
|
|
108
|
+
bg="inverseOnSurface"
|
|
109
|
+
value={searchText}
|
|
110
|
+
placeholder={t('home.searchBusiness')}
|
|
111
|
+
onChangeText={setSearchText}
|
|
112
|
+
/>
|
|
113
|
+
{!isFetching && (
|
|
72
114
|
<FlashList
|
|
73
115
|
refreshControl={
|
|
74
116
|
<RefreshControl refreshing={isRefetching} onRefresh={refetch} />
|
|
@@ -77,6 +119,7 @@ export const SelectBusiness = () => {
|
|
|
77
119
|
data={businesses}
|
|
78
120
|
renderItem={({ item }) => (
|
|
79
121
|
<BusinessCard
|
|
122
|
+
isSelectedBusiness={item.id === selectedBusinessId}
|
|
80
123
|
onSelect={() => {
|
|
81
124
|
if (navigation.canGoBack()) {
|
|
82
125
|
navigation.goBack();
|
|
@@ -92,7 +135,7 @@ export const SelectBusiness = () => {
|
|
|
92
135
|
)}
|
|
93
136
|
<View position="absolute" bottom={16} right={16}>
|
|
94
137
|
{(navigation.canGoBack() ||
|
|
95
|
-
(!
|
|
138
|
+
(!isFetching && businesses?.length === 0)) && (
|
|
96
139
|
<FAB
|
|
97
140
|
variant="secondary"
|
|
98
141
|
icon="plus"
|