1
- import { ServiceData } from '@/bcsc-theme/fixtures/services'
2
- import { ThemedText , useTheme } from '@bifold/core'
1
+ import { ThemedText , useStore , useTheme } from '@bifold/core'
3
2
import React from 'react'
4
3
import { StyleSheet , TouchableOpacity , View } from 'react-native'
5
4
import Icon from 'react-native-vector-icons/MaterialCommunityIcons'
5
+ import { useFilterServiceClients } from '../../services/hooks/useFilterServiceClients'
6
+ import { BCState } from '@/store'
7
+ import { BCSCRootStackParams , BCSCScreens } from '@/bcsc-theme/types/navigators'
8
+ import { StackNavigationProp } from '@react-navigation/stack'
9
+ import { useNavigation } from '@react-navigation/native'
6
10
7
11
interface SavedServiceProps {
8
12
title : string
@@ -28,16 +32,21 @@ const SavedService: React.FC<SavedServiceProps> = ({ title, onPress }) => {
28
32
</ TouchableOpacity >
29
33
)
30
34
}
31
- interface SavedServicesProps {
32
- services : ServiceData [ ]
33
- }
35
+
36
+ type ServicesNavigationProp = StackNavigationProp < BCSCRootStackParams , BCSCScreens . ServiceLoginScreen >
34
37
35
38
// to be replaced with API response or translation entries, whichever ends up being the case
36
39
const mockTitle = 'YOUR SAVED SERVICES'
37
40
const mockNoServicesMessage = 'No saved services'
38
41
39
- const SavedServices : React . FC < SavedServicesProps > = ( { services = [ ] } ) => {
42
+ const SavedServices : React . FC = ( ) => {
40
43
const { ColorPalette, Spacing } = useTheme ( )
44
+ const [ store ] = useStore < BCState > ( )
45
+ const navigation = useNavigation < ServicesNavigationProp > ( )
46
+
47
+ const serviceClients = useFilterServiceClients ( {
48
+ clientRefIdsFilter : store . bcsc . bookmarks ,
49
+ } )
41
50
42
51
const styles = StyleSheet . create ( {
43
52
container : {
@@ -51,6 +60,7 @@ const SavedServices: React.FC<SavedServicesProps> = ({ services = [] }) => {
51
60
} ,
52
61
bookmarkIcon : {
53
62
marginRight : Spacing . sm ,
63
+ marginLeft : - Spacing . xs ,
54
64
} ,
55
65
} )
56
66
@@ -63,15 +73,25 @@ const SavedServices: React.FC<SavedServicesProps> = ({ services = [] }) => {
63
73
</ ThemedText >
64
74
</ View >
65
75
66
- { services . length === 0 ? (
76
+ { serviceClients . length === 0 ? (
67
77
< ThemedText
68
78
variant = { 'headingFour' }
69
79
style = { { color : ColorPalette . brand . tertiary , fontWeight : 'normal' , paddingHorizontal : Spacing . md } }
70
80
>
71
81
{ mockNoServicesMessage }
72
82
</ ThemedText >
73
83
) : (
74
- services . map ( ( service ) => < SavedService key = { service . id } title = { service . title } onPress = { service . onPress } /> )
84
+ serviceClients . map ( ( serviceClient ) => (
85
+ < SavedService
86
+ key = { serviceClient . client_ref_id }
87
+ title = { serviceClient . client_name }
88
+ onPress = { ( ) => {
89
+ navigation . navigate ( BCSCScreens . ServiceLoginScreen , {
90
+ serviceClient : serviceClient ,
91
+ } )
92
+ } }
93
+ />
94
+ ) )
75
95
) }
76
96
</ View >
77
97
)
0 commit comments