@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.
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.SelectBusiness = void 0;
7
- var _react = _interopRequireDefault(require("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 [_, setBusinessId] = (0, _reactNativeMmkv.useMMKVString)(_constants.MMKV_KEYS.BUSINESS_ID);
54
+ const [selectedBusinessId, setBusinessId] = (0, _reactNativeMmkv.useMMKVString)(_constants.MMKV_KEYS.BUSINESS_ID);
55
+ const [searchText, setSearchText] = (0, _react.useState)('');
40
56
  const {
41
- data: businesses,
42
- isLoading,
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
- }), !isLoading && businesses?.length === 0 && /*#__PURE__*/_react.default.createElement(_components.View, {
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
- }, isLoading && /*#__PURE__*/_react.default.createElement(_components.View, {
66
- flex: 1,
67
- alignItems: "center",
68
- justifyContent: "center"
69
- }, /*#__PURE__*/_react.default.createElement(_reactNativePaper.ActivityIndicator, null)), !isLoading && /*#__PURE__*/_react.default.createElement(_flashList.FlashList, {
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() || !isLoading && businesses?.length === 0) && /*#__PURE__*/_react.default.createElement(_components.FAB, {
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","_interopRequireDefault","require","_components","_flashList","_reactI18next","_reactNativePaper","_reactNativeMmkv","_native","_reactQuery","_CreateBusinessBottomSheet","_useBusinesses","_constants","_useSingleSnapBottomSheetRef","obj","__esModule","default","BusinessCard","business","onSelect","createElement","Card","bg","p","mx","mb","mt","onPress","Text","variant","name","SelectBusiness","t","useTranslation","_","setBusinessId","useMMKVString","MMKV_KEYS","BUSINESS_ID","data","businesses","isLoading","isRefetching","refetch","useBusinesses","navigation","useNavigation","queryClient","useQueryClient","createBusinessBottomSheet","useSingleSnapBottomSheetRef","ParentView","flex","backgroundColor","Header","title","length","View","position","height","width","alignItems","justifyContent","alignSelf","px","ActivityIndicator","FlashList","refreshControl","RefreshControl","refreshing","onRefresh","showsVerticalScrollIndicator","renderItem","item","canGoBack","goBack","clear","id","estimatedItemSize","bottom","right","FAB","icon","expand","CreateBusinessBottomSheet","ref","close","exports"],"sourceRoot":"../../../src","sources":["selectBusiness/SelectBusiness.tsx"],"mappings":"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"}
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":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAWA,IAAAE,UAAA,GAAAF,OAAA;AACA,IAAAG,aAAA,GAAAH,OAAA;AACA,IAAAI,iBAAA,GAAAJ,OAAA;AACA,IAAAK,gBAAA,GAAAL,OAAA;AACA,IAAAM,OAAA,GAAAN,OAAA;AACA,IAAAO,WAAA,GAAAP,OAAA;AACA,IAAAQ,0BAAA,GAAAR,OAAA;AACA,IAAAS,cAAA,GAAAT,OAAA;AACA,IAAAU,UAAA,GAAAV,OAAA;AACA,IAAAW,4BAAA,GAAAX,OAAA;AACA,IAAAY,KAAA,GAAAC,sBAAA,CAAAb,OAAA;AAA8B,SAAAa,uBAAAC,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAnB,wBAAAmB,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAH,UAAA,SAAAG,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAF,OAAA,EAAAE,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAC,GAAA,CAAAJ,CAAA,UAAAG,CAAA,CAAAE,GAAA,CAAAL,CAAA,OAAAM,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAZ,CAAA,oBAAAY,CAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAY,CAAA,SAAAI,CAAA,GAAAR,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAX,CAAA,EAAAY,CAAA,UAAAI,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAI,CAAA,IAAAV,CAAA,CAAAM,CAAA,IAAAZ,CAAA,CAAAY,CAAA,YAAAN,CAAA,CAAAR,OAAA,GAAAE,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAc,GAAA,CAAAjB,CAAA,EAAAM,CAAA,GAAAA,CAAA;AAE9B,MAAMY,YAAY,GAAGA,CAAC;EACpBC,QAAQ;EACRC,kBAAkB;EAClBC;AAKF,CAAC,KAAK;EACJ,MAAMC,KAAK,GAAG,IAAAC,0BAAQ,EAAC,CAAC;EACxB,oBACE3C,MAAA,CAAAkB,OAAA,CAAA0B,aAAA,CAACzC,WAAA,CAAA0C,IAAI;IACHC,EAAE,EAAC,aAAa;IAChBC,CAAC,EAAC,IAAI;IACNC,MAAM,EAAE,EAAG;IACXC,EAAE,EAAC,GAAG;IACNC,EAAE,EAAC,IAAI;IACPC,EAAE,EAAC,GAAG;IACNC,OAAO,EAAEX;EAAS,gBAElBzC,MAAA,CAAAkB,OAAA,CAAA0B,aAAA,CAACzC,WAAA,CAAAkD,IAAI;IACHL,MAAM,EAAC,MAAM;IACbM,aAAa,EAAC,KAAK;IACnBC,cAAc,EAAE,eAAgB;IAChCC,UAAU,EAAE;EAAS,gBAErBxD,MAAA,CAAAkB,OAAA,CAAA0B,aAAA,CAACzC,WAAA,CAAAsD,IAAI;IAACC,OAAO,EAAC;EAAY,GAAEnB,QAAQ,CAACoB,IAAW,CAAC,EAChDnB,kBAAkB,iBACjBxC,MAAA,CAAAkB,OAAA,CAAA0B,aAAA,CAAC9B,KAAA,CAAAI,OAAI;IAAC8B,MAAM,EAAE,EAAG;IAACY,KAAK,EAAE,EAAG;IAACC,KAAK,EAAEnB,KAAK,CAACoB,MAAM,CAACC;EAAa,CAAE,CAE9D,CACF,CAAC;AAEX,CAAC;AAEM,MAAMC,cAAc,GAAGA,CAAA,KAAM;EAClC,MAAM;IAAEzC;EAAE,CAAC,GAAG,IAAA0C,4BAAc,EAAC,CAAC;EAC9B,MAAM,CAACC,kBAAkB,EAAEC,aAAa,CAAC,GAAG,IAAAC,8BAAa,EACvDC,oBAAS,CAACC,WACZ,CAAC;EACD,MAAM,CAACC,UAAU,EAAEC,aAAa,CAAC,GAAG,IAAAC,eAAQ,EAAC,EAAE,CAAC;EAChD,MAAM;IAAEC,IAAI,GAAG,EAAE;IAAEC,UAAU;IAAEC,YAAY;IAAEC;EAAQ,CAAC,GAAG,IAAAC,4BAAa,EAAC,CAAC;EAExE,MAAMC,UAAU,GAAG,IAAAC,qBAAa,EAAgC,CAAC;EACjE,MAAMC,WAAW,GAAG,IAAAC,0BAAc,EAAC,CAAC;EACpC,MAAMC,yBAAyB,GAAG,IAAAC,wDAA2B,EAAC,CAAC;EAE/D,MAAM,CAACC,UAAU,EAAEC,aAAa,CAAC,GAAG,IAAAb,eAAQ,EAK1C,EAAE,CAAC;EAEL,IAAAc,gBAAS,EAAC,MAAM;IACd,IAAIb,IAAI,CAACc,MAAM,GAAG,CAAC,EAAE;MACnB,MAAMC,kBAAkB,GAAGf,IAAI,CAACgB,MAAM,CACnCnD,QAAa,IACZA,QAAQ,CAACoB,IAAI,CAACgC,WAAW,CAAC,CAAC,CAACC,MAAM,CAACrB,UAAU,CAACsB,IAAI,CAAC,CAAC,CAACF,WAAW,CAAC,CAAC,CAAC,GACnE,CAAC,CACL,CAAC;MACDL,aAAa,CAACG,kBAAkB,CAAC;IACnC;EACF,CAAC,EAAE,CAAClB,UAAU,EAAEG,IAAI,CAAC,CAAC;EAEtB,oBACE1E,MAAA,CAAAkB,OAAA,CAAA0B,aAAA,CAACzC,WAAA,CAAA2F,UAAU;IAACC,IAAI,EAAE,CAAE;IAACC,eAAe,EAAC;EAAY,gBAC/ChG,MAAA,CAAAkB,OAAA,CAAA0B,aAAA,CAACzC,WAAA,CAAA8F,MAAM;IAACC,KAAK,EAAE3E,CAAC,CAAC,qBAAqB;EAAE,CAAE,CAAC,EAC1CgD,UAAU,CAACiB,MAAM,KAAK,CAAC,IAAI,CAACb,UAAU,IAAIU,UAAU,EAAEG,MAAM,KAAK,CAAC,iBACjExF,MAAA,CAAAkB,OAAA,CAAA0B,aAAA,CAACzC,WAAA,CAAAkD,IAAI;IACH8C,QAAQ,EAAC,UAAU;IACnBnD,MAAM,EAAE,MAAO;IACfY,KAAK,EAAE,MAAO;IACdJ,UAAU,EAAE,QAAS;IACrBD,cAAc,EAAE;EAAS,gBAEzBvD,MAAA,CAAAkB,OAAA,CAAA0B,aAAA,CAACzC,WAAA,CAAAsD,IAAI;IAAC2C,SAAS,EAAE;EAAS,GAAE7E,CAAC,CAAC,iBAAiB,CAAQ,CACnD,CACP,eACDvB,MAAA,CAAAkB,OAAA,CAAA0B,aAAA,CAACzC,WAAA,CAAAkD,IAAI;IAACgD,EAAE,EAAC,IAAI;IAACN,IAAI,EAAE;EAAE,gBACpB/F,MAAA,CAAAkB,OAAA,CAAA0B,aAAA,CAACzC,WAAA,CAAAmG,UAAU;IAACC,SAAS,EAAE5B;EAAW,CAAE,CAAC,eACrC3E,MAAA,CAAAkB,OAAA,CAAA0B,aAAA,CAACzC,WAAA,CAAAqG,SAAS;IACRtD,EAAE,EAAC,IAAI;IACPJ,EAAE,EAAC,kBAAkB;IACrB2D,KAAK,EAAElC,UAAW;IAClBmC,WAAW,EAAEnF,CAAC,CAAC,qBAAqB,CAAE;IACtCoF,YAAY,EAAEnC;EAAc,CAC7B,CAAC,EACD,CAACG,UAAU,iBACV3E,MAAA,CAAAkB,OAAA,CAAA0B,aAAA,CAACxC,UAAA,CAAAwG,SAAS;IACRC,cAAc,eACZ7G,MAAA,CAAAkB,OAAA,CAAA0B,aAAA,CAACzC,WAAA,CAAA2G,cAAc;MAACC,UAAU,EAAEnC,YAAa;MAACoC,SAAS,EAAEnC;IAAQ,CAAE,CAChE;IACDoC,4BAA4B,EAAE,KAAM;IACpCvC,IAAI,EAAEW,UAAW;IACjB6B,UAAU,EAAEA,CAAC;MAAEC;IAAK,CAAC,kBACnBnH,MAAA,CAAAkB,OAAA,CAAA0B,aAAA,CAACN,YAAY;MACXE,kBAAkB,EAAE2E,IAAI,CAACC,EAAE,KAAKlD,kBAAmB;MACnDzB,QAAQ,EAAEA,CAAA,KAAM;QACd,IAAIsC,UAAU,CAACsC,SAAS,CAAC,CAAC,EAAE;UAC1BtC,UAAU,CAACuC,MAAM,CAAC,CAAC;QACrB;QACArC,WAAW,CAACsC,KAAK,CAAC,CAAC;QACnBpD,aAAa,CAACgD,IAAI,CAACC,EAAE,CAAC;MACxB,CAAE;MACF7E,QAAQ,EAAE4E;IAAK,CAChB,CACD;IACFK,iBAAiB,EAAE;EAAI,CACxB,CACF,eACDxH,MAAA,CAAAkB,OAAA,CAAA0B,aAAA,CAACzC,WAAA,CAAAkD,IAAI;IAAC8C,QAAQ,EAAC,UAAU;IAACsB,MAAM,EAAE,EAAG;IAACC,KAAK,EAAE;EAAG,GAC7C,CAAC3C,UAAU,CAACsC,SAAS,CAAC,CAAC,IACrB,CAAC1C,UAAU,IAAIU,UAAU,EAAEG,MAAM,KAAK,CAAE,kBACzCxF,MAAA,CAAAkB,OAAA,CAAA0B,aAAA,CAACzC,WAAA,CAAAwH,GAAG;IACFjE,OAAO,EAAC,WAAW;IACnBkE,IAAI,EAAC,MAAM;IACXxE,OAAO,EAAE+B,yBAAyB,CAAC0C;EAAO,CAC3C,CAEC,CACF,CAAC,eACP7H,MAAA,CAAAkB,OAAA,CAAA0B,aAAA,CAAClC,0BAAA,CAAAoH,yBAAyB;IACxBC,GAAG,EAAE5C,yBAAyB,CAAC4C,GAAI;IACnCC,KAAK,EAAE7C,yBAAyB,CAAC6C;EAAM,CACxC,CACS,CAAC;AAEjB,CAAC;AAACC,OAAA,CAAAjE,cAAA,GAAAA,cAAA"}
@@ -0,0 +1,3 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M9.00016 16.1698L4.83016 11.9998L3.41016 13.4098L9.00016 18.9998L21.0002 6.99984L19.5902 5.58984L9.00016 16.1698Z" fill="#191C1A"/>
3
+ </svg>
@@ -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 { ActivityIndicator } from 'react-native-paper';
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 [_, setBusinessId] = useMMKVString(MMKV_KEYS.BUSINESS_ID);
45
+ const [selectedBusinessId, setBusinessId] = useMMKVString(MMKV_KEYS.BUSINESS_ID);
46
+ const [searchText, setSearchText] = useState('');
33
47
  const {
34
- data: businesses,
35
- isLoading,
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
- }), !isLoading && businesses?.length === 0 && /*#__PURE__*/React.createElement(View, {
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
- }, isLoading && /*#__PURE__*/React.createElement(View, {
59
- flex: 1,
60
- alignItems: "center",
61
- justifyContent: "center"
62
- }, /*#__PURE__*/React.createElement(ActivityIndicator, null)), !isLoading && /*#__PURE__*/React.createElement(FlashList, {
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() || !isLoading && businesses?.length === 0) && /*#__PURE__*/React.createElement(FAB, {
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","ActivityIndicator","useMMKVString","useNavigation","useQueryClient","CreateBusinessBottomSheet","useBusinesses","MMKV_KEYS","useSingleSnapBottomSheetRef","BusinessCard","business","onSelect","createElement","bg","p","mx","mb","mt","onPress","variant","name","SelectBusiness","t","_","setBusinessId","BUSINESS_ID","data","businesses","isLoading","isRefetching","refetch","navigation","queryClient","createBusinessBottomSheet","flex","backgroundColor","title","length","position","height","width","alignItems","justifyContent","alignSelf","px","refreshControl","refreshing","onRefresh","showsVerticalScrollIndicator","renderItem","item","canGoBack","goBack","clear","id","estimatedItemSize","bottom","right","icon","expand","ref","close"],"sourceRoot":"../../../src","sources":["selectBusiness/SelectBusiness.tsx"],"mappings":"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"}
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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"}
@@ -0,0 +1,3 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M9.00016 16.1698L4.83016 11.9998L3.41016 13.4098L9.00016 18.9998L21.0002 6.99984L19.5902 5.58984L9.00016 16.1698Z" fill="#191C1A"/>
3
+ </svg>
@@ -1 +1 @@
1
- {"version":3,"file":"SelectBusiness.d.ts","sourceRoot":"","sources":["../../../../src/selectBusiness/SelectBusiness.tsx"],"names":[],"mappings":";AAmCA,eAAO,MAAM,cAAc,mBA0E1B,CAAC"}
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,6 +1,6 @@
1
1
  {
2
2
  "name": "@kiosinc/commons-rn",
3
- "version": "0.1.34",
3
+ "version": "0.1.35",
4
4
  "description": "Common Code",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -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 { ActivityIndicator } from 'react-native-paper';
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 bg="onSecondary" p="16" mx="2" mb="12" mt="2" onPress={onSelect}>
31
- <Text variant="bodyMedium">{business.name}</Text>
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 [_, setBusinessId] = useMMKVString(MMKV_KEYS.BUSINESS_ID);
39
-
40
- const {
41
- data: businesses,
42
- isLoading,
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
- {!isLoading && businesses?.length === 0 && (
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
- {isLoading && (
67
- <View flex={1} alignItems="center" justifyContent="center">
68
- <ActivityIndicator />
69
- </View>
70
- )}
71
- {!isLoading && (
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
- (!isLoading && businesses?.length === 0)) && (
138
+ (!isFetching && businesses?.length === 0)) && (
96
139
  <FAB
97
140
  variant="secondary"
98
141
  icon="plus"
@@ -0,0 +1,3 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M9.00016 16.1698L4.83016 11.9998L3.41016 13.4098L9.00016 18.9998L21.0002 6.99984L19.5902 5.58984L9.00016 16.1698Z" fill="#191C1A"/>
3
+ </svg>