@planningcenter/chat-react-native 4.4.1-qa-staging.17 → 4.4.1-qa-staging.19

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.
Files changed (157) hide show
  1. package/build/components/conversations/archived_results_footer.d.ts +6 -0
  2. package/build/components/conversations/archived_results_footer.d.ts.map +1 -0
  3. package/build/components/conversations/archived_results_footer.js +51 -0
  4. package/build/components/conversations/archived_results_footer.js.map +1 -0
  5. package/build/components/conversations/conversation_actions.d.ts.map +1 -1
  6. package/build/components/conversations/conversation_actions.js +241 -206
  7. package/build/components/conversations/conversation_actions.js.map +1 -1
  8. package/build/components/conversations/conversation_preview.d.ts.map +1 -1
  9. package/build/components/conversations/conversation_preview.js +99 -93
  10. package/build/components/conversations/conversation_preview.js.map +1 -1
  11. package/build/components/conversations/conversations.d.ts.map +1 -1
  12. package/build/components/conversations/conversations.js +44 -35
  13. package/build/components/conversations/conversations.js.map +1 -1
  14. package/build/components/display/filter_dropdown.d.ts +2 -1
  15. package/build/components/display/filter_dropdown.d.ts.map +1 -1
  16. package/build/components/display/filter_dropdown.js +63 -58
  17. package/build/components/display/filter_dropdown.js.map +1 -1
  18. package/build/components/display/icon_tile.d.ts +12 -0
  19. package/build/components/display/icon_tile.d.ts.map +1 -0
  20. package/build/components/display/icon_tile.js +109 -0
  21. package/build/components/display/icon_tile.js.map +1 -0
  22. package/build/components/display/index.d.ts +1 -0
  23. package/build/components/display/index.d.ts.map +1 -1
  24. package/build/components/display/index.js +1 -0
  25. package/build/components/display/index.js.map +1 -1
  26. package/build/contexts/conversations_context.d.ts.map +1 -1
  27. package/build/contexts/conversations_context.js +21 -18
  28. package/build/contexts/conversations_context.js.map +1 -1
  29. package/build/hooks/index.d.ts +2 -0
  30. package/build/hooks/index.d.ts.map +1 -1
  31. package/build/hooks/index.js +2 -0
  32. package/build/hooks/index.js.map +1 -1
  33. package/build/hooks/use_can_browse_archived_conversations.d.ts +2 -0
  34. package/build/hooks/use_can_browse_archived_conversations.d.ts.map +1 -0
  35. package/build/hooks/use_can_browse_archived_conversations.js +29 -0
  36. package/build/hooks/use_can_browse_archived_conversations.js.map +1 -0
  37. package/build/hooks/use_clear_conversation_filters.d.ts.map +1 -1
  38. package/build/hooks/use_clear_conversation_filters.js +2 -1
  39. package/build/hooks/use_clear_conversation_filters.js.map +1 -1
  40. package/build/hooks/use_conversation.d.ts.map +1 -1
  41. package/build/hooks/use_conversation.js +32 -24
  42. package/build/hooks/use_conversation.js.map +1 -1
  43. package/build/hooks/use_current_person.d.ts.map +1 -1
  44. package/build/hooks/use_current_person.js +1 -1
  45. package/build/hooks/use_current_person.js.map +1 -1
  46. package/build/hooks/use_jolt.d.ts.map +1 -1
  47. package/build/hooks/use_jolt.js +29 -8
  48. package/build/hooks/use_jolt.js.map +1 -1
  49. package/build/hooks/use_manual_archiving_enabled.d.ts +2 -0
  50. package/build/hooks/use_manual_archiving_enabled.d.ts.map +1 -0
  51. package/build/hooks/use_manual_archiving_enabled.js +18 -0
  52. package/build/hooks/use_manual_archiving_enabled.js.map +1 -0
  53. package/build/screens/conversation_details_screen.d.ts.map +1 -1
  54. package/build/screens/conversation_details_screen.js +2 -1
  55. package/build/screens/conversation_details_screen.js.map +1 -1
  56. package/build/screens/conversation_filters/components/conversation_filters.d.ts.map +1 -1
  57. package/build/screens/conversation_filters/components/conversation_filters.js +80 -13
  58. package/build/screens/conversation_filters/components/conversation_filters.js.map +1 -1
  59. package/build/screens/conversation_filters/components/rows.d.ts +9 -0
  60. package/build/screens/conversation_filters/components/rows.d.ts.map +1 -1
  61. package/build/screens/conversation_filters/components/rows.js +92 -1
  62. package/build/screens/conversation_filters/components/rows.js.map +1 -1
  63. package/build/screens/conversation_filters/context/conversation_filter_context.d.ts.map +1 -1
  64. package/build/screens/conversation_filters/context/conversation_filter_context.js +8 -4
  65. package/build/screens/conversation_filters/context/conversation_filter_context.js.map +1 -1
  66. package/build/screens/conversation_filters/filter_types.d.ts +1 -0
  67. package/build/screens/conversation_filters/filter_types.d.ts.map +1 -1
  68. package/build/screens/conversation_filters/filter_types.js +1 -0
  69. package/build/screens/conversation_filters/filter_types.js.map +1 -1
  70. package/build/screens/conversation_filters/screen_props.d.ts +1 -0
  71. package/build/screens/conversation_filters/screen_props.d.ts.map +1 -1
  72. package/build/screens/conversation_filters/screen_props.js.map +1 -1
  73. package/build/screens/conversation_filters_screen.d.ts +1 -0
  74. package/build/screens/conversation_filters_screen.d.ts.map +1 -1
  75. package/build/screens/conversation_filters_screen.js +75 -49
  76. package/build/screens/conversation_filters_screen.js.map +1 -1
  77. package/build/screens/conversations/components/filter_dropdown_list_header_component.d.ts +2 -0
  78. package/build/screens/conversations/components/filter_dropdown_list_header_component.d.ts.map +1 -0
  79. package/build/screens/conversations/components/filter_dropdown_list_header_component.js +580 -0
  80. package/build/screens/conversations/components/filter_dropdown_list_header_component.js.map +1 -0
  81. package/build/screens/conversations/components/list_header_component.d.ts.map +1 -1
  82. package/build/screens/conversations/components/list_header_component.js +95 -90
  83. package/build/screens/conversations/components/list_header_component.js.map +1 -1
  84. package/build/screens/conversations/components/search_list_header_component.d.ts.map +1 -1
  85. package/build/screens/conversations/components/search_list_header_component.js +100 -95
  86. package/build/screens/conversations/components/search_list_header_component.js.map +1 -1
  87. package/build/screens/conversations/conversations_screen.d.ts +1 -0
  88. package/build/screens/conversations/conversations_screen.d.ts.map +1 -1
  89. package/build/screens/conversations/conversations_screen.js +15 -2
  90. package/build/screens/conversations/conversations_screen.js.map +1 -1
  91. package/build/types/resources/person.d.ts +1 -0
  92. package/build/types/resources/person.d.ts.map +1 -1
  93. package/build/types/resources/person.js.map +1 -1
  94. package/build/utils/date.d.ts.map +1 -1
  95. package/build/utils/date.js +5 -10
  96. package/build/utils/date.js.map +1 -1
  97. package/build/utils/native_adapters/menu.d.ts +1 -0
  98. package/build/utils/native_adapters/menu.d.ts.map +1 -1
  99. package/build/utils/native_adapters/menu.js +1 -0
  100. package/build/utils/native_adapters/menu.js.map +1 -1
  101. package/build/utils/request/conversation.d.ts +2 -1
  102. package/build/utils/request/conversation.d.ts.map +1 -1
  103. package/build/utils/request/conversation.js +4 -1
  104. package/build/utils/request/conversation.js.map +1 -1
  105. package/build/vendor/font_awesome_pro_solid_icons.d.ts +1 -0
  106. package/build/vendor/font_awesome_pro_solid_icons.d.ts.map +1 -1
  107. package/build/vendor/font_awesome_pro_solid_icons.js +5 -0
  108. package/build/vendor/font_awesome_pro_solid_icons.js.map +1 -1
  109. package/package.json +3 -3
  110. package/src/__tests__/hooks/use_can_browse_archived_conversations.test.tsx +98 -0
  111. package/src/__tests__/screens/conversation_filters/components/conversation_filters.test.tsx +3 -0
  112. package/src/__tests__/screens/conversation_filters_screen.test.tsx +76 -0
  113. package/src/components/conversations/__tests__/conversation_actions.test.tsx +67 -0
  114. package/src/components/conversations/__tests__/conversation_preview.test.tsx +38 -3
  115. package/src/components/conversations/__tests__/conversations.test.tsx +82 -0
  116. package/src/components/conversations/__tests__/conversations_blank_state.test.tsx +1 -0
  117. package/src/components/conversations/archived_results_footer.tsx +36 -0
  118. package/src/components/conversations/conversation_actions.tsx +27 -19
  119. package/src/components/conversations/conversation_preview.tsx +30 -10
  120. package/src/components/conversations/conversations.tsx +15 -3
  121. package/src/components/display/__tests__/filter_dropdown.test.tsx +9 -1
  122. package/src/components/display/filter_dropdown.tsx +14 -13
  123. package/src/components/display/icon_tile.tsx +54 -0
  124. package/src/components/display/index.ts +1 -0
  125. package/src/contexts/conversations_context.tsx +2 -1
  126. package/src/hooks/__tests__/use_conversation_archive.test.tsx +22 -0
  127. package/src/hooks/__tests__/use_jolt.test.tsx +30 -8
  128. package/src/hooks/index.ts +2 -0
  129. package/src/hooks/use_can_browse_archived_conversations.ts +17 -0
  130. package/src/hooks/use_clear_conversation_filters.ts +1 -0
  131. package/src/hooks/use_conversation.ts +4 -1
  132. package/src/hooks/use_current_person.ts +1 -0
  133. package/src/hooks/use_jolt.ts +33 -8
  134. package/src/hooks/use_manual_archiving_enabled.ts +10 -0
  135. package/src/screens/conversation_details_screen.tsx +2 -3
  136. package/src/screens/conversation_filters/__tests__/conversation_filters.test.tsx +101 -0
  137. package/src/screens/conversation_filters/components/conversation_filters.tsx +32 -2
  138. package/src/screens/conversation_filters/components/rows.tsx +29 -1
  139. package/src/screens/conversation_filters/context/conversation_filter_context.tsx +4 -0
  140. package/src/screens/conversation_filters/filter_types.ts +1 -0
  141. package/src/screens/conversation_filters/screen_props.ts +1 -0
  142. package/src/screens/conversation_filters_screen.tsx +20 -4
  143. package/src/screens/conversations/__tests__/conversations_screen.test.tsx +52 -0
  144. package/src/screens/conversations/components/__tests__/filter_dropdown_list_header_component.test.tsx +259 -0
  145. package/src/screens/conversations/components/__tests__/list_header_component.test.tsx +21 -4
  146. package/src/screens/conversations/components/filter_dropdown_list_header_component.tsx +286 -0
  147. package/src/screens/conversations/components/list_header_component.tsx +17 -12
  148. package/src/screens/conversations/components/search_list_header_component.tsx +17 -12
  149. package/src/screens/conversations/conversations_screen.tsx +15 -2
  150. package/src/types/resources/person.ts +1 -0
  151. package/src/utils/__tests__/conversation.test.ts +1 -0
  152. package/src/utils/__tests__/date.test.ts +4 -0
  153. package/src/utils/date.ts +5 -4
  154. package/src/utils/native_adapters/__tests__/menu.test.tsx +6 -2
  155. package/src/utils/native_adapters/menu.tsx +2 -0
  156. package/src/utils/request/conversation.ts +4 -0
  157. package/src/vendor/font_awesome_pro_solid_icons.ts +12 -0
@@ -5,14 +5,16 @@ import { FlatList, StyleSheet, View } from 'react-native';
5
5
  import { useConversationsContext } from '../../contexts/conversations_context';
6
6
  import { useTheme } from '../../hooks';
7
7
  import { useCanCreateConversations } from '../../hooks/use_chat_permissions';
8
+ import { useClearConversationFilters } from '../../hooks/use_clear_conversation_filters';
8
9
  import { useConversationsJoltEvents } from '../../hooks/use_conversations_jolt_events';
9
10
  import { useFilterDropdownEnabled } from '../../hooks/use_filter_dropdown_enabled';
11
+ import { ArchivedResultsFooter } from './archived_results_footer';
10
12
  import { ConversationPreview, ConversationPreviewSkeleton } from './conversation_preview';
11
13
  import { ConversationsBlankState } from './conversations_blank_state';
12
14
  import { FilteredResultsFooter } from './filtered_results_footer';
13
15
  import { jsx as _jsx } from "react/jsx-runtime";
14
16
  export const Conversations = t0 => {
15
- const $ = _c(25);
17
+ const $ = _c(27);
16
18
  const {
17
19
  ListHeaderComponent
18
20
  } = t0;
@@ -30,13 +32,16 @@ export const Conversations = t0 => {
30
32
  const {
31
33
  chat_group_graph_id,
32
34
  group_source_app_name,
33
- show_direct_messages
35
+ show_direct_messages,
36
+ show_archived
34
37
  } = t1;
35
38
  const navigation = useNavigation();
36
39
  const canCreateConversations = useCanCreateConversations();
40
+ const clearFilters = useClearConversationFilters();
37
41
  const filterDropdownEnabled = useFilterDropdownEnabled();
38
- const isFilterApplied = !!chat_group_graph_id || !!group_source_app_name || !!show_direct_messages;
39
- const showFilteredResultsFooter = filterDropdownEnabled && isFilterApplied && !hasNextPage && !isLoading && conversations.length > 0;
42
+ const isFilterApplied = !!chat_group_graph_id || !!group_source_app_name || !!show_direct_messages || !!show_archived;
43
+ const showArchivedResultsFooter = !!show_archived && !isLoading;
44
+ const showFilteredResultsFooter = filterDropdownEnabled && isFilterApplied && !show_archived && !hasNextPage && !isLoading && conversations.length > 0;
40
45
  const showBadges = !chat_group_graph_id;
41
46
  let t2;
42
47
  bb0: {
@@ -70,15 +75,19 @@ export const Conversations = t0 => {
70
75
  t4 = $[4];
71
76
  }
72
77
  let t5;
73
- if ($[5] !== showFilteredResultsFooter) {
74
- t5 = showFilteredResultsFooter ? /*#__PURE__*/_jsx(FilteredResultsFooter, {}) : null;
75
- $[5] = showFilteredResultsFooter;
76
- $[6] = t5;
78
+ if ($[5] !== clearFilters || $[6] !== showArchivedResultsFooter || $[7] !== showFilteredResultsFooter) {
79
+ t5 = showArchivedResultsFooter ? /*#__PURE__*/_jsx(ArchivedResultsFooter, {
80
+ onViewActiveConversations: clearFilters
81
+ }) : showFilteredResultsFooter ? /*#__PURE__*/_jsx(FilteredResultsFooter, {}) : null;
82
+ $[5] = clearFilters;
83
+ $[6] = showArchivedResultsFooter;
84
+ $[7] = showFilteredResultsFooter;
85
+ $[8] = t5;
77
86
  } else {
78
- t5 = $[6];
87
+ t5 = $[8];
79
88
  }
80
89
  let t6;
81
- if ($[7] !== navigation || $[8] !== showBadges) {
90
+ if ($[9] !== navigation || $[10] !== showBadges) {
82
91
  t6 = t7 => {
83
92
  const {
84
93
  item: item_0
@@ -99,22 +108,22 @@ export const Conversations = t0 => {
99
108
  });
100
109
  }
101
110
  };
102
- $[7] = navigation;
103
- $[8] = showBadges;
104
- $[9] = t6;
111
+ $[9] = navigation;
112
+ $[10] = showBadges;
113
+ $[11] = t6;
105
114
  } else {
106
- t6 = $[9];
115
+ t6 = $[11];
107
116
  }
108
117
  let t7;
109
- if ($[10] !== fetchNextPage) {
118
+ if ($[12] !== fetchNextPage) {
110
119
  t7 = () => fetchNextPage();
111
- $[10] = fetchNextPage;
112
- $[11] = t7;
120
+ $[12] = fetchNextPage;
121
+ $[13] = t7;
113
122
  } else {
114
- t7 = $[11];
123
+ t7 = $[13];
115
124
  }
116
125
  let t8;
117
- if ($[12] !== ListHeaderComponent || $[13] !== data || $[14] !== refetch || $[15] !== styles.contentContainer || $[16] !== t3 || $[17] !== t4 || $[18] !== t5 || $[19] !== t6 || $[20] !== t7) {
126
+ if ($[14] !== ListHeaderComponent || $[15] !== data || $[16] !== refetch || $[17] !== styles.contentContainer || $[18] !== t3 || $[19] !== t4 || $[20] !== t5 || $[21] !== t6 || $[22] !== t7) {
118
127
  t8 = /*#__PURE__*/_jsx(FlatList, {
119
128
  data: data,
120
129
  keyExtractor: _temp2,
@@ -127,30 +136,30 @@ export const Conversations = t0 => {
127
136
  renderItem: t6,
128
137
  onEndReached: t7
129
138
  });
130
- $[12] = ListHeaderComponent;
131
- $[13] = data;
132
- $[14] = refetch;
133
- $[15] = styles.contentContainer;
134
- $[16] = t3;
135
- $[17] = t4;
136
- $[18] = t5;
137
- $[19] = t6;
138
- $[20] = t7;
139
- $[21] = t8;
139
+ $[14] = ListHeaderComponent;
140
+ $[15] = data;
141
+ $[16] = refetch;
142
+ $[17] = styles.contentContainer;
143
+ $[18] = t3;
144
+ $[19] = t4;
145
+ $[20] = t5;
146
+ $[21] = t6;
147
+ $[22] = t7;
148
+ $[23] = t8;
140
149
  } else {
141
- t8 = $[21];
150
+ t8 = $[23];
142
151
  }
143
152
  let t9;
144
- if ($[22] !== styles.container || $[23] !== t8) {
153
+ if ($[24] !== styles.container || $[25] !== t8) {
145
154
  t9 = /*#__PURE__*/_jsx(View, {
146
155
  style: styles.container,
147
156
  children: t8
148
157
  });
149
- $[22] = styles.container;
150
- $[23] = t8;
151
- $[24] = t9;
158
+ $[24] = styles.container;
159
+ $[25] = t8;
160
+ $[26] = t9;
152
161
  } else {
153
- t9 = $[24];
162
+ t9 = $[26];
154
163
  }
155
164
  return t9;
156
165
  };
@@ -1 +1 @@
1
- {"version":3,"file":"conversations.js","names":["useNavigation","React","useMemo","FlatList","StyleSheet","View","useConversationsContext","useTheme","useCanCreateConversations","useConversationsJoltEvents","useFilterDropdownEnabled","ConversationPreview","ConversationPreviewSkeleton","ConversationsBlankState","FilteredResultsFooter","jsx","_jsx","Conversations","t0","$","_c","ListHeaderComponent","styles","useStyles","conversations","isLoading","fetchNextPage","refetch","isRefetching","isFetched","hasNextPage","args","t1","chat_group_graph_id","group_source_app_name","show_direct_messages","navigation","canCreateConversations","filterDropdownEnabled","isFilterApplied","showFilteredResultsFooter","length","showBadges","t2","bb0","loadingPlaceholder","t3","map","_temp","data","t4","t5","t6","t7","item","item_0","type","conversation","resource","onPress","navigate","conversation_id","id","title","badge","badges","deleted","muted","t8","contentContainer","keyExtractor","_temp2","contentContainerStyle","refreshing","ListEmptyComponent","ListFooterComponent","renderItem","onEndReached","t9","container","style","children","colors","fillColorNeutral020","create","flex","paddingVertical","listItem","color","Array","from","_","i","toString"],"sources":["../../../src/components/conversations/conversations.tsx"],"sourcesContent":["import { useNavigation } from '@react-navigation/native'\nimport React, { useMemo } from 'react'\nimport { FlatList, StyleSheet, View } from 'react-native'\nimport { useConversationsContext } from '../../contexts/conversations_context'\nimport { useTheme } from '../../hooks'\nimport { useCanCreateConversations } from '../../hooks/use_chat_permissions'\nimport { useConversationsJoltEvents } from '../../hooks/use_conversations_jolt_events'\nimport { useFilterDropdownEnabled } from '../../hooks/use_filter_dropdown_enabled'\nimport { ConversationResource } from '../../types'\nimport { ConversationPreview, ConversationPreviewSkeleton } from './conversation_preview'\nimport { ConversationsBlankState } from './conversations_blank_state'\nimport { FilteredResultsFooter } from './filtered_results_footer'\n\ninterface ConversationsProps {\n ListHeaderComponent?:\n | React.ComponentType<any>\n | React.ReactElement<any, string | React.JSXElementConstructor<any>>\n | null\n | undefined\n}\n\nexport const Conversations = ({ ListHeaderComponent }: ConversationsProps) => {\n const styles = useStyles()\n const {\n conversations,\n isLoading,\n fetchNextPage,\n refetch,\n isRefetching,\n isFetched,\n hasNextPage,\n args: { chat_group_graph_id, group_source_app_name, show_direct_messages },\n } = useConversationsContext()\n const navigation = useNavigation()\n const canCreateConversations = useCanCreateConversations()\n const filterDropdownEnabled = useFilterDropdownEnabled()\n const isFilterApplied = !!chat_group_graph_id || !!group_source_app_name || !!show_direct_messages\n const showFilteredResultsFooter =\n filterDropdownEnabled &&\n isFilterApplied &&\n !hasNextPage &&\n !isLoading &&\n conversations.length > 0\n\n const showBadges = !chat_group_graph_id\n\n const data: FlatListItem[] = useMemo(() => {\n if (isLoading) {\n return loadingPlaceholder\n }\n return conversations.map(conversation => ({\n type: 'conversation' as const,\n id: conversation.id,\n resource: conversation,\n }))\n }, [conversations, isLoading])\n\n useConversationsJoltEvents()\n\n return (\n <View style={styles.container}>\n <FlatList\n data={data}\n keyExtractor={item => item.id.toString()}\n contentContainerStyle={styles.contentContainer}\n onRefresh={refetch}\n refreshing={!isFetched && isRefetching}\n ListHeaderComponent={ListHeaderComponent}\n ListEmptyComponent={\n <ConversationsBlankState\n isFilterApplied={isFilterApplied}\n canCreateConversations={canCreateConversations}\n />\n }\n ListFooterComponent={showFilteredResultsFooter ? <FilteredResultsFooter /> : null}\n renderItem={({ item }) => {\n if (item.type === 'loading') {\n return <ConversationPreviewSkeleton />\n } else {\n return (\n <ConversationPreview\n conversation={item.resource}\n onPress={() =>\n navigation.navigate('Conversation', {\n conversation_id: item.resource.id,\n title: item.resource.title,\n badge: item.resource.badges?.[0],\n deleted: item.resource.deleted,\n muted: item.resource.muted,\n })\n }\n showBadges={showBadges}\n />\n )\n }\n }}\n onEndReached={() => fetchNextPage()}\n />\n </View>\n )\n}\n\nconst useStyles = () => {\n const { colors } = useTheme()\n\n return StyleSheet.create({\n container: { flex: 1 },\n contentContainer: { paddingVertical: 16 },\n listItem: { color: colors.fillColorNeutral020 },\n })\n}\n\ninterface FlatListLoadingItem {\n type: 'loading'\n id: string\n}\ninterface FlatListConversationItem {\n type: 'conversation'\n resource: ConversationResource\n id: number\n}\ntype FlatListItem = FlatListLoadingItem | FlatListConversationItem\n\nconst loadingPlaceholder: FlatListItem[] = Array.from({ length: 5 }, (_, i) => ({\n type: 'loading',\n id: `loading${i}`,\n}))\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"conversations.js","names":["useNavigation","React","useMemo","FlatList","StyleSheet","View","useConversationsContext","useTheme","useCanCreateConversations","useClearConversationFilters","useConversationsJoltEvents","useFilterDropdownEnabled","ArchivedResultsFooter","ConversationPreview","ConversationPreviewSkeleton","ConversationsBlankState","FilteredResultsFooter","jsx","_jsx","Conversations","t0","$","_c","ListHeaderComponent","styles","useStyles","conversations","isLoading","fetchNextPage","refetch","isRefetching","isFetched","hasNextPage","args","t1","chat_group_graph_id","group_source_app_name","show_direct_messages","show_archived","navigation","canCreateConversations","clearFilters","filterDropdownEnabled","isFilterApplied","showArchivedResultsFooter","showFilteredResultsFooter","length","showBadges","t2","bb0","loadingPlaceholder","t3","map","_temp","data","t4","t5","t6","t7","item","item_0","type","conversation","resource","onPress","navigate","conversation_id","id","title","badge","badges","deleted","muted","t8","contentContainer","keyExtractor","_temp2","contentContainerStyle","refreshing","ListEmptyComponent","ListFooterComponent","renderItem","onEndReached","t9","container","style","children","colors","fillColorNeutral020","create","flex","paddingVertical","listItem","color","Array","from","_","i","toString"],"sources":["../../../src/components/conversations/conversations.tsx"],"sourcesContent":["import { useNavigation } from '@react-navigation/native'\nimport React, { useMemo } from 'react'\nimport { FlatList, StyleSheet, View } from 'react-native'\nimport { useConversationsContext } from '../../contexts/conversations_context'\nimport { useTheme } from '../../hooks'\nimport { useCanCreateConversations } from '../../hooks/use_chat_permissions'\nimport { useClearConversationFilters } from '../../hooks/use_clear_conversation_filters'\nimport { useConversationsJoltEvents } from '../../hooks/use_conversations_jolt_events'\nimport { useFilterDropdownEnabled } from '../../hooks/use_filter_dropdown_enabled'\nimport { ConversationResource } from '../../types'\nimport { ArchivedResultsFooter } from './archived_results_footer'\nimport { ConversationPreview, ConversationPreviewSkeleton } from './conversation_preview'\nimport { ConversationsBlankState } from './conversations_blank_state'\nimport { FilteredResultsFooter } from './filtered_results_footer'\n\ninterface ConversationsProps {\n ListHeaderComponent?:\n | React.ComponentType<any>\n | React.ReactElement<any, string | React.JSXElementConstructor<any>>\n | null\n | undefined\n}\n\nexport const Conversations = ({ ListHeaderComponent }: ConversationsProps) => {\n const styles = useStyles()\n const {\n conversations,\n isLoading,\n fetchNextPage,\n refetch,\n isRefetching,\n isFetched,\n hasNextPage,\n args: { chat_group_graph_id, group_source_app_name, show_direct_messages, show_archived },\n } = useConversationsContext()\n const navigation = useNavigation()\n const canCreateConversations = useCanCreateConversations()\n const clearFilters = useClearConversationFilters()\n const filterDropdownEnabled = useFilterDropdownEnabled()\n const isFilterApplied =\n !!chat_group_graph_id || !!group_source_app_name || !!show_direct_messages || !!show_archived\n const showArchivedResultsFooter = !!show_archived && !isLoading\n const showFilteredResultsFooter =\n filterDropdownEnabled &&\n isFilterApplied &&\n !show_archived &&\n !hasNextPage &&\n !isLoading &&\n conversations.length > 0\n\n const showBadges = !chat_group_graph_id\n\n const data: FlatListItem[] = useMemo(() => {\n if (isLoading) {\n return loadingPlaceholder\n }\n return conversations.map(conversation => ({\n type: 'conversation' as const,\n id: conversation.id,\n resource: conversation,\n }))\n }, [conversations, isLoading])\n\n useConversationsJoltEvents()\n\n return (\n <View style={styles.container}>\n <FlatList\n data={data}\n keyExtractor={item => item.id.toString()}\n contentContainerStyle={styles.contentContainer}\n onRefresh={refetch}\n refreshing={!isFetched && isRefetching}\n ListHeaderComponent={ListHeaderComponent}\n ListEmptyComponent={\n <ConversationsBlankState\n isFilterApplied={isFilterApplied}\n canCreateConversations={canCreateConversations}\n />\n }\n ListFooterComponent={\n showArchivedResultsFooter ? (\n <ArchivedResultsFooter onViewActiveConversations={clearFilters} />\n ) : showFilteredResultsFooter ? (\n <FilteredResultsFooter />\n ) : null\n }\n renderItem={({ item }) => {\n if (item.type === 'loading') {\n return <ConversationPreviewSkeleton />\n } else {\n return (\n <ConversationPreview\n conversation={item.resource}\n onPress={() =>\n navigation.navigate('Conversation', {\n conversation_id: item.resource.id,\n title: item.resource.title,\n badge: item.resource.badges?.[0],\n deleted: item.resource.deleted,\n muted: item.resource.muted,\n })\n }\n showBadges={showBadges}\n />\n )\n }\n }}\n onEndReached={() => fetchNextPage()}\n />\n </View>\n )\n}\n\nconst useStyles = () => {\n const { colors } = useTheme()\n\n return StyleSheet.create({\n container: { flex: 1 },\n contentContainer: { paddingVertical: 16 },\n listItem: { color: colors.fillColorNeutral020 },\n })\n}\n\ninterface FlatListLoadingItem {\n type: 'loading'\n id: string\n}\ninterface FlatListConversationItem {\n type: 'conversation'\n resource: ConversationResource\n id: number\n}\ntype FlatListItem = FlatListLoadingItem | FlatListConversationItem\n\nconst loadingPlaceholder: FlatListItem[] = Array.from({ length: 5 }, (_, i) => ({\n type: 'loading',\n id: `loading${i}`,\n}))\n"],"mappings":";AAAA,SAASA,aAAa,QAAQ,0BAA0B;AACxD,OAAOC,KAAK,IAAIC,OAAO,QAAQ,OAAO;AACtC,SAASC,QAAQ,EAAEC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AACzD,SAASC,uBAAuB,QAAQ,sCAAsC;AAC9E,SAASC,QAAQ,QAAQ,aAAa;AACtC,SAASC,yBAAyB,QAAQ,kCAAkC;AAC5E,SAASC,2BAA2B,QAAQ,4CAA4C;AACxF,SAASC,0BAA0B,QAAQ,2CAA2C;AACtF,SAASC,wBAAwB,QAAQ,yCAAyC;AAElF,SAASC,qBAAqB,QAAQ,2BAA2B;AACjE,SAASC,mBAAmB,EAAEC,2BAA2B,QAAQ,wBAAwB;AACzF,SAASC,uBAAuB,QAAQ,6BAA6B;AACrE,SAASC,qBAAqB,QAAQ,2BAA2B;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAUjE,OAAO,MAAMC,aAAa,GAAGC,EAAA;EAAA,MAAAC,CAAA,GAAAC,EAAA;EAAC;IAAAC;EAAA,IAAAH,EAA2C;EACvE,MAAAI,MAAA,GAAeC,SAAS,CAAC,CAAC;EAC1B;IAAAC,aAAA;IAAAC,SAAA;IAAAC,aAAA;IAAAC,OAAA;IAAAC,YAAA;IAAAC,SAAA;IAAAC,WAAA;IAAAC,IAAA,EAAAC;EAAA,IASI5B,uBAAuB,CAAC,CAAC;EADrB;IAAA6B,mBAAA;IAAAC,qBAAA;IAAAC,oBAAA;IAAAC;EAAA,IAAAJ,EAAmF;EAE3F,MAAAK,UAAA,GAAmBvC,aAAa,CAAC,CAAC;EAClC,MAAAwC,sBAAA,GAA+BhC,yBAAyB,CAAC,CAAC;EAC1D,MAAAiC,YAAA,GAAqBhC,2BAA2B,CAAC,CAAC;EAClD,MAAAiC,qBAAA,GAA8B/B,wBAAwB,CAAC,CAAC;EACxD,MAAAgC,eAAA,GACE,CAAC,CAACR,mBAA8C,IAAhD,CAA0B,CAACC,qBAA+C,IAA1E,CAAqD,CAACC,oBAAuC,IAA7F,CAA+E,CAACC,aAAa;EAC/F,MAAAM,yBAAA,GAAkC,CAAC,CAACN,aAA2B,IAA7B,CAAoBX,SAAS;EAC/D,MAAAkB,yBAAA,GACEH,qBACe,IADfC,eAEc,IAFd,CAECL,aACW,IAHZ,CAGCN,WACS,IAJV,CAICL,SACuB,IAAxBD,aAAa,CAAAoB,MAAO,GAAG,CAAC;EAE1B,MAAAC,UAAA,GAAmB,CAACZ,mBAAmB;EAAA,IAAAa,EAAA;EAAAC,GAAA;IAGrC,IAAItB,SAAS;MACXqB,EAAA,GAAOE,kBAAkB;MAAzB,MAAAD,GAAA;IAAyB;IAC1B,IAAAE,EAAA;IAAA,IAAA9B,CAAA,QAAAK,aAAA;MACMyB,EAAA,GAAAzB,aAAa,CAAA0B,GAAI,CAACC,KAIvB,CAAC;MAAAhC,CAAA,MAAAK,aAAA;MAAAL,CAAA,MAAA8B,EAAA;IAAA;MAAAA,EAAA,GAAA9B,CAAA;IAAA;IAJH2B,EAAA,GAAOG,EAIJ;EAAA;EARL,MAAAG,IAAA,GAA6BN,EASC;EAE9BtC,0BAA0B,CAAC,CAAC;EASV,MAAAyC,EAAA,IAACpB,SAAyB,IAA1BD,YAA0B;EAAA,IAAAyB,EAAA;EAAA,IAAAlC,CAAA,QAAAmB,sBAAA,IAAAnB,CAAA,QAAAsB,eAAA;IAGpCY,EAAA,gBAAArC,IAAA,CAACH,uBAAuB;MACL4B,eAAe,EAAfA,eAAe;MACRH,sBAAsB,EAAtBA;IAAsB,CAC/C,CAAC;IAAAnB,CAAA,MAAAmB,sBAAA;IAAAnB,CAAA,MAAAsB,eAAA;IAAAtB,CAAA,MAAAkC,EAAA;EAAA;IAAAA,EAAA,GAAAlC,CAAA;EAAA;EAAA,IAAAmC,EAAA;EAAA,IAAAnC,CAAA,QAAAoB,YAAA,IAAApB,CAAA,QAAAuB,yBAAA,IAAAvB,CAAA,QAAAwB,yBAAA;IAGFW,EAAA,GAAAZ,yBAAyB,gBAAzB1B,IAAA,CACGN,qBAAqB;MAA4B6B,yBAAY,EAAZA;IAAY,CAGzD,CAAC,GAFJI,yBAAyB,gBAAzB3B,IAAA,CACDF,qBAAqB,IACjB,CAAC,GAFJ,IAEI;IAAAK,CAAA,MAAAoB,YAAA;IAAApB,CAAA,MAAAuB,yBAAA;IAAAvB,CAAA,MAAAwB,yBAAA;IAAAxB,CAAA,MAAAmC,EAAA;EAAA;IAAAA,EAAA,GAAAnC,CAAA;EAAA;EAAA,IAAAoC,EAAA;EAAA,IAAApC,CAAA,QAAAkB,UAAA,IAAAlB,CAAA,SAAA0B,UAAA;IAEEU,EAAA,GAAAC,EAAA;MAAC;QAAAC,IAAA,EAAAC;MAAA,IAAAF,EAAQ;MACnB,IAAIC,MAAI,CAAAE,IAAK,KAAK,SAAS;QAAA,oBAClB3C,IAAA,CAACJ,2BAA2B,IAAE,CAAC;MAAA;QAAA,oBAGpCI,IAAA,CAACL,mBAAmB;UACJiD,YAAa,EAAbH,MAAI,CAAAI,QAAS;UAClBC,OAOL,EAPKA,CAAA,KACPzB,UAAU,CAAA0B,QAAS,CAAC,cAAc,EAAE;YAAAC,eAAA,EACjBP,MAAI,CAAAI,QAAS,CAAAI,EAAG;YAAAC,KAAA,EAC1BT,MAAI,CAAAI,QAAS,CAAAK,KAAM;YAAAC,KAAA,EACnBV,MAAI,CAAAI,QAAS,CAAAO,MAAY;YAAAC,OAAA,EACvBZ,MAAI,CAAAI,QAAS,CAAAQ,OAAQ;YAAAC,KAAA,EACvBb,MAAI,CAAAI,QAAS,CAAAS;UACtB,CAAC,CAAC;UAEQzB,UAAU,EAAVA;QAAU,CACvB,CAAC;MAAA;IAEL,CACF;IAAA1B,CAAA,MAAAkB,UAAA;IAAAlB,CAAA,OAAA0B,UAAA;IAAA1B,CAAA,OAAAoC,EAAA;EAAA;IAAAA,EAAA,GAAApC,CAAA;EAAA;EAAA,IAAAqC,EAAA;EAAA,IAAArC,CAAA,SAAAO,aAAA;IACa8B,EAAA,GAAAA,CAAA,KAAM9B,aAAa,CAAC,CAAC;IAAAP,CAAA,OAAAO,aAAA;IAAAP,CAAA,OAAAqC,EAAA;EAAA;IAAAA,EAAA,GAAArC,CAAA;EAAA;EAAA,IAAAoD,EAAA;EAAA,IAAApD,CAAA,SAAAE,mBAAA,IAAAF,CAAA,SAAAiC,IAAA,IAAAjC,CAAA,SAAAQ,OAAA,IAAAR,CAAA,SAAAG,MAAA,CAAAkD,gBAAA,IAAArD,CAAA,SAAA8B,EAAA,IAAA9B,CAAA,SAAAkC,EAAA,IAAAlC,CAAA,SAAAmC,EAAA,IAAAnC,CAAA,SAAAoC,EAAA,IAAApC,CAAA,SAAAqC,EAAA;IAzCrCe,EAAA,gBAAAvD,IAAA,CAACf,QAAQ;MACDmD,IAAI,EAAJA,IAAI;MACIqB,YAA0B,EAA1BC,MAA0B;MACjBC,qBAAuB,EAAvBrD,MAAM,CAAAkD,gBAAiB;MACnC7C,SAAO,EAAPA,OAAO;MACNiD,UAA0B,EAA1B3B,EAA0B;MACjB5B,mBAAmB,EAAnBA,mBAAmB;MAEtCwD,kBAGE,EAHFxB,EAGE;MAGFyB,mBAIQ,EAJRxB,EAIQ;MAEEyB,UAoBX,EApBWxB,EAoBX;MACayB,YAAqB,EAArBxB;IAAqB,CACpC,CAAC;IAAArC,CAAA,OAAAE,mBAAA;IAAAF,CAAA,OAAAiC,IAAA;IAAAjC,CAAA,OAAAQ,OAAA;IAAAR,CAAA,OAAAG,MAAA,CAAAkD,gBAAA;IAAArD,CAAA,OAAA8B,EAAA;IAAA9B,CAAA,OAAAkC,EAAA;IAAAlC,CAAA,OAAAmC,EAAA;IAAAnC,CAAA,OAAAoC,EAAA;IAAApC,CAAA,OAAAqC,EAAA;IAAArC,CAAA,OAAAoD,EAAA;EAAA;IAAAA,EAAA,GAAApD,CAAA;EAAA;EAAA,IAAA8D,EAAA;EAAA,IAAA9D,CAAA,SAAAG,MAAA,CAAA4D,SAAA,IAAA/D,CAAA,SAAAoD,EAAA;IA3CJU,EAAA,gBAAAjE,IAAA,CAACb,IAAI;MAAQgF,KAAgB,EAAhB7D,MAAM,CAAA4D,SAAU;MAAAE,QAAA,EAC3Bb;IA0CE,CACE,CAAC;IAAApD,CAAA,OAAAG,MAAA,CAAA4D,SAAA;IAAA/D,CAAA,OAAAoD,EAAA;IAAApD,CAAA,OAAA8D,EAAA;EAAA;IAAAA,EAAA,GAAA9D,CAAA;EAAA;EAAA,OA5CP8D,EA4CO;AAAA,CAEV;AAED,MAAM1D,SAAS,GAAGA,CAAA;EAAA,MAAAJ,CAAA,GAAAC,EAAA;EAChB;IAAAiE;EAAA,IAAmBhF,QAAQ,CAAC,CAAC;EAAA,IAAAa,EAAA;EAAA,IAAAC,CAAA,QAAAkE,MAAA,CAAAC,mBAAA;IAEtBpE,EAAA,GAAAhB,UAAU,CAAAqF,MAAO,CAAC;MAAAL,SAAA,EACZ;QAAAM,IAAA,EAAQ;MAAE,CAAC;MAAAhB,gBAAA,EACJ;QAAAiB,eAAA,EAAmB;MAAG,CAAC;MAAAC,QAAA,EAC/B;QAAAC,KAAA,EAASN,MAAM,CAAAC;MAAqB;IAChD,CAAC,CAAC;IAAAnE,CAAA,MAAAkE,MAAA,CAAAC,mBAAA;IAAAnE,CAAA,MAAAD,EAAA;EAAA;IAAAA,EAAA,GAAAC,CAAA;EAAA;EAAA,OAJKD,EAIL;AAAA,CACH;AAaD,MAAM8B,kBAAkC,GAAG4C,KAAK,CAACC,IAAI,CAAC;EAAEjD,MAAM,EAAE;AAAE,CAAC,EAAE,CAACkD,CAAC,EAAEC,CAAC,MAAM;EAC9EpC,IAAI,EAAE,SAAS;EACfM,EAAE,EAAE,UAAU8B,CAAC;AACjB,CAAC,CAAC,CAAC;AAnH0B,SAAA5C,MAAAS,YAAA;EAAA,OAiCiB;IAAAD,IAAA,EAClC,cAAc;IAAAM,EAAA,EAChBL,YAAY,CAAAK,EAAG;IAAAJ,QAAA,EACTD;EACZ,CAAC;AAAA;AArCwB,SAAAc,OAAAjB,IAAA;EAAA,OA8CCA,IAAI,CAAAQ,EAAG,CAAA+B,QAAS,CAAC,CAAC;AAAA","ignoreList":[]}
@@ -8,6 +8,7 @@ export interface FilterDropdownProps {
8
8
  onSelect: (id: string) => void;
9
9
  onMoreFilters: () => void;
10
10
  triggerLabel: string;
11
+ showMoreFilters?: boolean;
11
12
  }
12
- export declare function FilterDropdown({ options, selectedId, onSelect, onMoreFilters, triggerLabel, }: FilterDropdownProps): import("react/jsx-runtime").JSX.Element;
13
+ export declare function FilterDropdown({ options, selectedId, onSelect, onMoreFilters, triggerLabel, showMoreFilters, }: FilterDropdownProps): import("react/jsx-runtime").JSX.Element;
13
14
  //# sourceMappingURL=filter_dropdown.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"filter_dropdown.d.ts","sourceRoot":"","sources":["../../../src/components/display/filter_dropdown.tsx"],"names":[],"mappings":"AAyBA,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,oBAAoB,EAAE,CAAA;IAC/B,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9B,aAAa,EAAE,MAAM,IAAI,CAAA;IACzB,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,wBAAgB,cAAc,CAAC,EAC7B,OAAO,EACP,UAAU,EACV,QAAQ,EACR,aAAa,EACb,YAAY,GACb,EAAE,mBAAmB,2CAiDrB"}
1
+ {"version":3,"file":"filter_dropdown.d.ts","sourceRoot":"","sources":["../../../src/components/display/filter_dropdown.tsx"],"names":[],"mappings":"AAyBA,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,oBAAoB,EAAE,CAAA;IAC/B,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9B,aAAa,EAAE,MAAM,IAAI,CAAA;IACzB,YAAY,EAAE,MAAM,CAAA;IACpB,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED,wBAAgB,cAAc,CAAC,EAC7B,OAAO,EACP,UAAU,EACV,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,eAAsB,GACvB,EAAE,mBAAmB,2CAgDrB"}
@@ -19,32 +19,35 @@ const MORE_FILTERS_LABEL = 'More filters';
19
19
  // =================================
20
20
 
21
21
  export function FilterDropdown(t0) {
22
- const $ = _c(23);
22
+ const $ = _c(24);
23
23
  const {
24
24
  options,
25
25
  selectedId,
26
26
  onSelect,
27
27
  onMoreFilters,
28
- triggerLabel
28
+ triggerLabel,
29
+ showMoreFilters: t1
29
30
  } = t0;
31
+ const showMoreFilters = t1 === undefined ? true : t1;
30
32
  const styles = useStyles();
31
- let t1;
32
- if ($[0] !== options || $[1] !== selectedId) {
33
- let t2;
34
- if ($[3] !== selectedId) {
35
- t2 = option => ({
33
+ let t2;
34
+ if ($[0] !== options || $[1] !== selectedId || $[2] !== showMoreFilters) {
35
+ let t3;
36
+ if ($[4] !== selectedId) {
37
+ t3 = option => ({
36
38
  id: option.id,
37
39
  title: option.label,
38
40
  state: option.id === selectedId ? "on" : "off"
39
41
  });
40
- $[3] = selectedId;
41
- $[4] = t2;
42
+ $[4] = selectedId;
43
+ $[5] = t3;
42
44
  } else {
43
- t2 = $[4];
45
+ t3 = $[5];
44
46
  }
45
- let t3;
46
- if ($[5] === Symbol.for("react.memo_cache_sentinel")) {
47
- t3 = {
47
+ const optionActions = options.map(t3);
48
+ let t4;
49
+ if ($[6] === Symbol.for("react.memo_cache_sentinel")) {
50
+ t4 = {
48
51
  id: MORE_FILTERS_ID,
49
52
  title: "",
50
53
  displayInline: true,
@@ -53,97 +56,99 @@ export function FilterDropdown(t0) {
53
56
  title: MORE_FILTERS_LABEL
54
57
  }]
55
58
  };
56
- $[5] = t3;
59
+ $[6] = t4;
57
60
  } else {
58
- t3 = $[5];
61
+ t4 = $[6];
59
62
  }
60
- t1 = [...options.map(t2), t3];
63
+ const moreFiltersAction = t4;
64
+ t2 = showMoreFilters ? [...optionActions, moreFiltersAction] : optionActions;
61
65
  $[0] = options;
62
66
  $[1] = selectedId;
63
- $[2] = t1;
67
+ $[2] = showMoreFilters;
68
+ $[3] = t2;
64
69
  } else {
65
- t1 = $[2];
70
+ t2 = $[3];
66
71
  }
67
- const actions = t1;
68
- let t2;
69
- if ($[6] !== onMoreFilters || $[7] !== onSelect) {
70
- t2 = t3 => {
72
+ const actions = t2;
73
+ let t3;
74
+ if ($[7] !== onMoreFilters || $[8] !== onSelect) {
75
+ t3 = t4 => {
71
76
  const {
72
77
  nativeEvent
73
- } = t3;
78
+ } = t4;
74
79
  if (nativeEvent.event === MORE_FILTERS_ID) {
75
80
  onMoreFilters();
76
81
  } else {
77
82
  onSelect(nativeEvent.event);
78
83
  }
79
84
  };
80
- $[6] = onMoreFilters;
81
- $[7] = onSelect;
82
- $[8] = t2;
85
+ $[7] = onMoreFilters;
86
+ $[8] = onSelect;
87
+ $[9] = t3;
83
88
  } else {
84
- t2 = $[8];
89
+ t3 = $[9];
85
90
  }
86
- const handlePressAction = t2;
87
- let t3;
88
- if ($[9] !== styles.triggerLabel || $[10] !== triggerLabel) {
89
- t3 = /*#__PURE__*/_jsx(Text, {
91
+ const handlePressAction = t3;
92
+ let t4;
93
+ if ($[10] !== styles.triggerLabel || $[11] !== triggerLabel) {
94
+ t4 = /*#__PURE__*/_jsx(Text, {
90
95
  style: styles.triggerLabel,
91
96
  numberOfLines: 1,
92
97
  maxFontSizeMultiplier: MAX_FONT_SIZE_MULTIPLIER_LANDMARK,
93
98
  children: triggerLabel
94
99
  });
95
- $[9] = styles.triggerLabel;
96
- $[10] = triggerLabel;
97
- $[11] = t3;
100
+ $[10] = styles.triggerLabel;
101
+ $[11] = triggerLabel;
102
+ $[12] = t4;
98
103
  } else {
99
- t3 = $[11];
104
+ t4 = $[12];
100
105
  }
101
- let t4;
102
- if ($[12] !== styles.triggerIcon) {
103
- t4 = /*#__PURE__*/_jsx(Icon, {
106
+ let t5;
107
+ if ($[13] !== styles.triggerIcon) {
108
+ t5 = /*#__PURE__*/_jsx(Icon, {
104
109
  name: "general.downChevron",
105
110
  style: styles.triggerIcon,
106
111
  maxFontSizeMultiplier: MAX_FONT_SIZE_MULTIPLIER_LANDMARK,
107
112
  accessibilityElementsHidden: true
108
113
  });
109
- $[12] = styles.triggerIcon;
110
- $[13] = t4;
114
+ $[13] = styles.triggerIcon;
115
+ $[14] = t5;
111
116
  } else {
112
- t4 = $[13];
117
+ t5 = $[14];
113
118
  }
114
- let t5;
115
- if ($[14] !== styles.trigger || $[15] !== t3 || $[16] !== t4) {
116
- t5 = /*#__PURE__*/_jsxs(View, {
119
+ let t6;
120
+ if ($[15] !== styles.trigger || $[16] !== t4 || $[17] !== t5) {
121
+ t6 = /*#__PURE__*/_jsxs(View, {
117
122
  style: styles.trigger,
118
123
  accessible: true,
119
124
  accessibilityRole: "button",
120
125
  accessibilityHint: "Opens filter options",
121
- children: [t3, t4]
126
+ children: [t4, t5]
122
127
  });
123
- $[14] = styles.trigger;
124
- $[15] = t3;
128
+ $[15] = styles.trigger;
125
129
  $[16] = t4;
126
130
  $[17] = t5;
131
+ $[18] = t6;
127
132
  } else {
128
- t5 = $[17];
133
+ t6 = $[18];
129
134
  }
130
- let t6;
131
- if ($[18] !== actions || $[19] !== handlePressAction || $[20] !== styles.container || $[21] !== t5) {
132
- t6 = /*#__PURE__*/_jsx(Menu.View, {
135
+ let t7;
136
+ if ($[19] !== actions || $[20] !== handlePressAction || $[21] !== styles.container || $[22] !== t6) {
137
+ t7 = /*#__PURE__*/_jsx(Menu.View, {
133
138
  actions: actions,
134
139
  onPressAction: handlePressAction,
135
140
  style: styles.container,
136
- children: t5
141
+ children: t6
137
142
  });
138
- $[18] = actions;
139
- $[19] = handlePressAction;
140
- $[20] = styles.container;
141
- $[21] = t5;
143
+ $[19] = actions;
144
+ $[20] = handlePressAction;
145
+ $[21] = styles.container;
142
146
  $[22] = t6;
147
+ $[23] = t7;
143
148
  } else {
144
- t6 = $[22];
149
+ t7 = $[23];
145
150
  }
146
- return t6;
151
+ return t7;
147
152
  }
148
153
 
149
154
  // =================================
@@ -1 +1 @@
1
- {"version":3,"file":"filter_dropdown.js","names":["React","StyleSheet","View","useTheme","MAX_FONT_SIZE_MULTIPLIER_LANDMARK","Menu","platformFontWeightBold","tokens","Icon","Text","jsx","_jsx","jsxs","_jsxs","MORE_FILTERS_ID","MORE_FILTERS_LABEL","FilterDropdown","t0","$","_c","options","selectedId","onSelect","onMoreFilters","triggerLabel","styles","useStyles","t1","t2","option","id","title","label","state","t3","Symbol","for","displayInline","subactions","map","actions","nativeEvent","event","handlePressAction","style","numberOfLines","children","t4","triggerIcon","name","accessibilityElementsHidden","t5","trigger","accessible","accessibilityRole","accessibilityHint","t6","container","colors","iconColorDefaultPrimary","textColorDefaultPrimary","create","alignSelf","flexDirection","alignItems","gap","paddingVertical","flexShrink","fontWeight","color","fontSize","fontSizeSm"],"sources":["../../../src/components/display/filter_dropdown.tsx"],"sourcesContent":["import React from 'react'\nimport { StyleSheet, View } from 'react-native'\nimport { useTheme } from '../../hooks'\nimport {\n MAX_FONT_SIZE_MULTIPLIER_LANDMARK,\n Menu,\n MenuAction,\n MenuActionEvent,\n platformFontWeightBold,\n} from '../../utils'\nimport { tokens } from '../../vendor/tapestry/tokens'\nimport { Icon } from './icon'\nimport { Text } from './text'\n\n// =================================\n// ====== Constants ================\n// =================================\n\nconst MORE_FILTERS_ID = 'more_filters'\nconst MORE_FILTERS_LABEL = 'More filters'\n\n// =================================\n// ====== Component ================\n// =================================\n\nexport interface FilterDropdownOption {\n id: string\n label: string\n}\n\nexport interface FilterDropdownProps {\n options: FilterDropdownOption[]\n selectedId: string\n onSelect: (id: string) => void\n onMoreFilters: () => void\n triggerLabel: string\n}\n\nexport function FilterDropdown({\n options,\n selectedId,\n onSelect,\n onMoreFilters,\n triggerLabel,\n}: FilterDropdownProps) {\n const styles = useStyles()\n\n const actions: MenuAction[] = [\n ...options.map(option => ({\n id: option.id,\n title: option.label,\n state: option.id === selectedId ? ('on' as const) : ('off' as const),\n })),\n {\n id: MORE_FILTERS_ID,\n title: '',\n displayInline: true,\n subactions: [{ id: MORE_FILTERS_ID, title: MORE_FILTERS_LABEL }],\n },\n ]\n\n const handlePressAction = ({ nativeEvent }: MenuActionEvent) => {\n if (nativeEvent.event === MORE_FILTERS_ID) {\n onMoreFilters()\n } else {\n onSelect(nativeEvent.event)\n }\n }\n\n return (\n <Menu.View actions={actions} onPressAction={handlePressAction} style={styles.container}>\n <View\n style={styles.trigger}\n accessible\n accessibilityRole=\"button\"\n accessibilityHint=\"Opens filter options\"\n >\n <Text\n style={styles.triggerLabel}\n numberOfLines={1}\n maxFontSizeMultiplier={MAX_FONT_SIZE_MULTIPLIER_LANDMARK}\n >\n {triggerLabel}\n </Text>\n <Icon\n name=\"general.downChevron\"\n style={styles.triggerIcon}\n maxFontSizeMultiplier={MAX_FONT_SIZE_MULTIPLIER_LANDMARK}\n accessibilityElementsHidden\n />\n </View>\n </Menu.View>\n )\n}\n\n// =================================\n// ====== Styles ===================\n// =================================\n\nconst useStyles = () => {\n const { colors } = useTheme()\n\n return StyleSheet.create({\n container: {\n alignSelf: 'flex-start',\n },\n trigger: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 6,\n paddingVertical: 4,\n },\n triggerLabel: {\n flexShrink: 1,\n fontWeight: platformFontWeightBold,\n color: colors.textColorDefaultPrimary,\n },\n triggerIcon: {\n fontSize: tokens.fontSizeSm,\n color: colors.iconColorDefaultPrimary,\n },\n })\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"filter_dropdown.js","names":["React","StyleSheet","View","useTheme","MAX_FONT_SIZE_MULTIPLIER_LANDMARK","Menu","platformFontWeightBold","tokens","Icon","Text","jsx","_jsx","jsxs","_jsxs","MORE_FILTERS_ID","MORE_FILTERS_LABEL","FilterDropdown","t0","$","_c","options","selectedId","onSelect","onMoreFilters","triggerLabel","showMoreFilters","t1","undefined","styles","useStyles","t2","t3","option","id","title","label","state","optionActions","map","t4","Symbol","for","displayInline","subactions","moreFiltersAction","actions","nativeEvent","event","handlePressAction","style","numberOfLines","children","t5","triggerIcon","name","accessibilityElementsHidden","t6","trigger","accessible","accessibilityRole","accessibilityHint","t7","container","colors","iconColorDefaultPrimary","textColorDefaultPrimary","create","alignSelf","flexDirection","alignItems","gap","paddingVertical","flexShrink","fontWeight","color","fontSize","fontSizeSm"],"sources":["../../../src/components/display/filter_dropdown.tsx"],"sourcesContent":["import React from 'react'\nimport { StyleSheet, View } from 'react-native'\nimport { useTheme } from '../../hooks'\nimport {\n MAX_FONT_SIZE_MULTIPLIER_LANDMARK,\n Menu,\n MenuAction,\n MenuActionEvent,\n platformFontWeightBold,\n} from '../../utils'\nimport { tokens } from '../../vendor/tapestry/tokens'\nimport { Icon } from './icon'\nimport { Text } from './text'\n\n// =================================\n// ====== Constants ================\n// =================================\n\nconst MORE_FILTERS_ID = 'more_filters'\nconst MORE_FILTERS_LABEL = 'More filters'\n\n// =================================\n// ====== Component ================\n// =================================\n\nexport interface FilterDropdownOption {\n id: string\n label: string\n}\n\nexport interface FilterDropdownProps {\n options: FilterDropdownOption[]\n selectedId: string\n onSelect: (id: string) => void\n onMoreFilters: () => void\n triggerLabel: string\n showMoreFilters?: boolean\n}\n\nexport function FilterDropdown({\n options,\n selectedId,\n onSelect,\n onMoreFilters,\n triggerLabel,\n showMoreFilters = true,\n}: FilterDropdownProps) {\n const styles = useStyles()\n\n const optionActions: MenuAction[] = options.map(option => ({\n id: option.id,\n title: option.label,\n state: option.id === selectedId ? ('on' as const) : ('off' as const),\n }))\n const moreFiltersAction: MenuAction = {\n id: MORE_FILTERS_ID,\n title: '',\n displayInline: true,\n subactions: [{ id: MORE_FILTERS_ID, title: MORE_FILTERS_LABEL }],\n }\n const actions = showMoreFilters ? [...optionActions, moreFiltersAction] : optionActions\n\n const handlePressAction = ({ nativeEvent }: MenuActionEvent) => {\n if (nativeEvent.event === MORE_FILTERS_ID) {\n onMoreFilters()\n } else {\n onSelect(nativeEvent.event)\n }\n }\n\n return (\n <Menu.View actions={actions} onPressAction={handlePressAction} style={styles.container}>\n <View\n style={styles.trigger}\n accessible\n accessibilityRole=\"button\"\n accessibilityHint=\"Opens filter options\"\n >\n <Text\n style={styles.triggerLabel}\n numberOfLines={1}\n maxFontSizeMultiplier={MAX_FONT_SIZE_MULTIPLIER_LANDMARK}\n >\n {triggerLabel}\n </Text>\n <Icon\n name=\"general.downChevron\"\n style={styles.triggerIcon}\n maxFontSizeMultiplier={MAX_FONT_SIZE_MULTIPLIER_LANDMARK}\n accessibilityElementsHidden\n />\n </View>\n </Menu.View>\n )\n}\n\n// =================================\n// ====== Styles ===================\n// =================================\n\nconst useStyles = () => {\n const { colors } = useTheme()\n\n return StyleSheet.create({\n container: {\n alignSelf: 'flex-start',\n },\n trigger: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 6,\n paddingVertical: 4,\n },\n triggerLabel: {\n flexShrink: 1,\n fontWeight: platformFontWeightBold,\n color: colors.textColorDefaultPrimary,\n },\n triggerIcon: {\n fontSize: tokens.fontSizeSm,\n color: colors.iconColorDefaultPrimary,\n },\n })\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,12 @@
1
+ import type { IconDefinition } from '@fortawesome/fontawesome-svg-core';
2
+ import { type AvatarRootProps } from '../primitive/avatar_primitive';
3
+ interface IconTileProps {
4
+ icon: IconDefinition;
5
+ size?: AvatarRootProps['size'];
6
+ maxFontSizeMultiplier?: AvatarRootProps['maxFontSizeMultiplier'];
7
+ style?: AvatarRootProps['style'];
8
+ testID?: string;
9
+ }
10
+ export declare function IconTile({ icon, size, maxFontSizeMultiplier, style, testID, }: IconTileProps): import("react/jsx-runtime").JSX.Element;
11
+ export {};
12
+ //# sourceMappingURL=icon_tile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon_tile.d.ts","sourceRoot":"","sources":["../../../src/components/display/icon_tile.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AAMvE,OAAwB,EAAE,KAAK,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAIrF,UAAU,aAAa;IACrB,IAAI,EAAE,cAAc,CAAA;IACpB,IAAI,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAA;IAC9B,qBAAqB,CAAC,EAAE,eAAe,CAAC,uBAAuB,CAAC,CAAA;IAChE,KAAK,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC,CAAA;IAChC,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,wBAAgB,QAAQ,CAAC,EACvB,IAAI,EACJ,IAAW,EACX,qBAAgD,EAChD,KAAK,EACL,MAAM,GACP,EAAE,aAAa,2CAaf"}
@@ -0,0 +1,109 @@
1
+ import { c as _c } from "react/compiler-runtime";
2
+ import { FontAwesomeIcon } from '@fortawesome/react-native-fontawesome';
3
+ import React from 'react';
4
+ import { StyleSheet, View } from 'react-native';
5
+ import { useFontScale, useTheme } from '../../hooks';
6
+ import { MAX_FONT_SIZE_MULTIPLIER } from '../../utils';
7
+ import AvatarPrimitive from '../primitive/avatar_primitive';
8
+ import { jsx as _jsx } from "react/jsx-runtime";
9
+ const ICON_SIZE_PX = 16;
10
+ export function IconTile(t0) {
11
+ const $ = _c(15);
12
+ const {
13
+ icon,
14
+ size: t1,
15
+ maxFontSizeMultiplier: t2,
16
+ style,
17
+ testID
18
+ } = t0;
19
+ const size = t1 === undefined ? "lg" : t1;
20
+ const maxFontSizeMultiplier = t2 === undefined ? MAX_FONT_SIZE_MULTIPLIER : t2;
21
+ const styles = useStyles();
22
+ let t3;
23
+ if ($[0] !== maxFontSizeMultiplier) {
24
+ t3 = {
25
+ maxFontSizeMultiplier
26
+ };
27
+ $[0] = maxFontSizeMultiplier;
28
+ $[1] = t3;
29
+ } else {
30
+ t3 = $[1];
31
+ }
32
+ const fontScale = useFontScale(t3);
33
+ const t4 = ICON_SIZE_PX * fontScale;
34
+ let t5;
35
+ if ($[2] !== icon || $[3] !== styles.icon.color || $[4] !== t4) {
36
+ t5 = /*#__PURE__*/_jsx(FontAwesomeIcon, {
37
+ icon: icon,
38
+ size: t4,
39
+ color: styles.icon.color
40
+ });
41
+ $[2] = icon;
42
+ $[3] = styles.icon.color;
43
+ $[4] = t4;
44
+ $[5] = t5;
45
+ } else {
46
+ t5 = $[5];
47
+ }
48
+ let t6;
49
+ if ($[6] !== styles.tile || $[7] !== t5 || $[8] !== testID) {
50
+ t6 = /*#__PURE__*/_jsx(AvatarPrimitive.Mask, {
51
+ children: /*#__PURE__*/_jsx(View, {
52
+ style: styles.tile,
53
+ testID: testID,
54
+ accessibilityElementsHidden: true,
55
+ children: t5
56
+ })
57
+ });
58
+ $[6] = styles.tile;
59
+ $[7] = t5;
60
+ $[8] = testID;
61
+ $[9] = t6;
62
+ } else {
63
+ t6 = $[9];
64
+ }
65
+ let t7;
66
+ if ($[10] !== maxFontSizeMultiplier || $[11] !== size || $[12] !== style || $[13] !== t6) {
67
+ t7 = /*#__PURE__*/_jsx(AvatarPrimitive.Root, {
68
+ size: size,
69
+ maxFontSizeMultiplier: maxFontSizeMultiplier,
70
+ style: style,
71
+ children: t6
72
+ });
73
+ $[10] = maxFontSizeMultiplier;
74
+ $[11] = size;
75
+ $[12] = style;
76
+ $[13] = t6;
77
+ $[14] = t7;
78
+ } else {
79
+ t7 = $[14];
80
+ }
81
+ return t7;
82
+ }
83
+ const useStyles = () => {
84
+ const $ = _c(3);
85
+ const {
86
+ colors
87
+ } = useTheme();
88
+ let t0;
89
+ if ($[0] !== colors.fillColorNeutral070 || $[1] !== colors.iconColorDefaultPrimary) {
90
+ t0 = StyleSheet.create({
91
+ tile: {
92
+ flex: 1,
93
+ alignItems: "center",
94
+ justifyContent: "center",
95
+ backgroundColor: colors.fillColorNeutral070
96
+ },
97
+ icon: {
98
+ color: colors.iconColorDefaultPrimary
99
+ }
100
+ });
101
+ $[0] = colors.fillColorNeutral070;
102
+ $[1] = colors.iconColorDefaultPrimary;
103
+ $[2] = t0;
104
+ } else {
105
+ t0 = $[2];
106
+ }
107
+ return t0;
108
+ };
109
+ //# sourceMappingURL=icon_tile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon_tile.js","names":["FontAwesomeIcon","React","StyleSheet","View","useFontScale","useTheme","MAX_FONT_SIZE_MULTIPLIER","AvatarPrimitive","jsx","_jsx","ICON_SIZE_PX","IconTile","t0","$","_c","icon","size","t1","maxFontSizeMultiplier","t2","style","testID","undefined","styles","useStyles","t3","fontScale","t4","t5","color","t6","tile","Mask","children","accessibilityElementsHidden","t7","Root","colors","fillColorNeutral070","iconColorDefaultPrimary","create","flex","alignItems","justifyContent","backgroundColor"],"sources":["../../../src/components/display/icon_tile.tsx"],"sourcesContent":["import type { IconDefinition } from '@fortawesome/fontawesome-svg-core'\nimport { FontAwesomeIcon } from '@fortawesome/react-native-fontawesome'\nimport React from 'react'\nimport { StyleSheet, View } from 'react-native'\nimport { useFontScale, useTheme } from '../../hooks'\nimport { MAX_FONT_SIZE_MULTIPLIER } from '../../utils'\nimport AvatarPrimitive, { type AvatarRootProps } from '../primitive/avatar_primitive'\n\nconst ICON_SIZE_PX = 16\n\ninterface IconTileProps {\n icon: IconDefinition\n size?: AvatarRootProps['size']\n maxFontSizeMultiplier?: AvatarRootProps['maxFontSizeMultiplier']\n style?: AvatarRootProps['style']\n testID?: string\n}\n\nexport function IconTile({\n icon,\n size = 'lg',\n maxFontSizeMultiplier = MAX_FONT_SIZE_MULTIPLIER,\n style,\n testID,\n}: IconTileProps) {\n const styles = useStyles()\n const fontScale = useFontScale({ maxFontSizeMultiplier })\n\n return (\n <AvatarPrimitive.Root size={size} maxFontSizeMultiplier={maxFontSizeMultiplier} style={style}>\n <AvatarPrimitive.Mask>\n <View style={styles.tile} testID={testID} accessibilityElementsHidden>\n <FontAwesomeIcon icon={icon} size={ICON_SIZE_PX * fontScale} color={styles.icon.color} />\n </View>\n </AvatarPrimitive.Mask>\n </AvatarPrimitive.Root>\n )\n}\n\nconst useStyles = () => {\n const { colors } = useTheme()\n\n return StyleSheet.create({\n tile: {\n flex: 1,\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: colors.fillColorNeutral070,\n },\n icon: {\n color: colors.iconColorDefaultPrimary,\n },\n })\n}\n"],"mappings":"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","ignoreList":[]}
@@ -4,6 +4,7 @@ export * from './badge';
4
4
  export * from './conversation_avatar';
5
5
  export * from './emoji_avatar';
6
6
  export * from './icon_avatar';
7
+ export * from './icon_tile';
7
8
  export * from './banner_collapsible';
8
9
  export * from './banner';
9
10
  export * from './button';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/display/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,uBAAuB,CAAA;AACrC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,sBAAsB,CAAA;AACpC,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,4BAA4B,CAAA;AAC1C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA;AACvB,cAAc,2BAA2B,CAAA;AACzC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,eAAe,CAAA;AAC7B,cAAc,sBAAsB,CAAA;AACpC,cAAc,QAAQ,CAAA;AACtB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,mBAAmB,CAAA;AACjC,cAAc,wBAAwB,CAAA;AACtC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iCAAiC,CAAA;AAC/C,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/display/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,uBAAuB,CAAA;AACrC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,sBAAsB,CAAA;AACpC,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,4BAA4B,CAAA;AAC1C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA;AACvB,cAAc,2BAA2B,CAAA;AACzC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,eAAe,CAAA;AAC7B,cAAc,sBAAsB,CAAA;AACpC,cAAc,QAAQ,CAAA;AACtB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,mBAAmB,CAAA;AACjC,cAAc,wBAAwB,CAAA;AACtC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iCAAiC,CAAA;AAC/C,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA"}
@@ -4,6 +4,7 @@ export * from './badge';
4
4
  export * from './conversation_avatar';
5
5
  export * from './emoji_avatar';
6
6
  export * from './icon_avatar';
7
+ export * from './icon_tile';
7
8
  export * from './banner_collapsible';
8
9
  export * from './banner';
9
10
  export * from './button';