11import { useMemo } from 'react' ;
22import type { OnyxCollection , OnyxEntry } from 'react-native-onyx' ;
33import * as Expensicons from '@components/Icon/Expensicons' ;
4+ import type { LocaleContextProps } from '@components/LocaleContextProvider' ;
45import type { ListItem , SectionListDataType } from '@components/SelectionList/types' ;
56import { isPolicyAdmin , shouldShowPolicy , sortWorkspacesBySelected } from '@libs/PolicyUtils' ;
67import { getDefaultWorkspaceAvatar } from '@libs/ReportUtils' ;
@@ -23,10 +24,11 @@ type UseWorkspaceListParams = {
2324 shouldShowPendingDeletePolicy : boolean ;
2425 selectedPolicyIDs : string [ ] | undefined ;
2526 searchTerm : string ;
27+ localeCompare : LocaleContextProps [ 'localeCompare' ] ;
2628 additionalFilter ?: ( policy : OnyxEntry < Policy > ) => boolean ;
2729} ;
2830
29- function useWorkspaceList ( { policies, currentUserLogin, selectedPolicyIDs, searchTerm, shouldShowPendingDeletePolicy, additionalFilter} : UseWorkspaceListParams ) {
31+ function useWorkspaceList ( { policies, currentUserLogin, selectedPolicyIDs, searchTerm, shouldShowPendingDeletePolicy, localeCompare , additionalFilter} : UseWorkspaceListParams ) {
3032 const usersWorkspaces = useMemo ( ( ) => {
3133 if ( ! policies || isEmptyObject ( policies ) ) {
3234 return [ ] ;
@@ -61,9 +63,9 @@ function useWorkspaceList({policies, currentUserLogin, selectedPolicyIDs, search
6163 const filteredAndSortedUserWorkspaces = useMemo < WorkspaceListItem [ ] > (
6264 ( ) =>
6365 tokenizedSearch ( usersWorkspaces , searchTerm , ( policy ) => [ policy . text ] ) . sort ( ( policy1 , policy2 ) =>
64- sortWorkspacesBySelected ( { policyID : policy1 . policyID , name : policy1 . text } , { policyID : policy2 . policyID , name : policy2 . text } , selectedPolicyIDs ) ,
66+ sortWorkspacesBySelected ( { policyID : policy1 . policyID , name : policy1 . text } , { policyID : policy2 . policyID , name : policy2 . text } , selectedPolicyIDs , localeCompare ) ,
6567 ) ,
66- [ searchTerm , usersWorkspaces , selectedPolicyIDs ] ,
68+ [ searchTerm , usersWorkspaces , selectedPolicyIDs , localeCompare ] ,
6769 ) ;
6870
6971 const sections = useMemo ( ( ) => {
0 commit comments