@fluentui-react-native/tester 0.166.0 → 0.167.1

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 (95) hide show
  1. package/CHANGELOG.json +37 -1
  2. package/CHANGELOG.md +19 -2
  3. package/lib/E2E/src/index.consts.d.ts +0 -2
  4. package/lib/E2E/src/index.consts.d.ts.map +1 -1
  5. package/lib/E2E/src/index.consts.js +0 -2
  6. package/lib/E2E/src/index.consts.js.map +1 -1
  7. package/lib/fluent-tester/src/TestComponents/FocusTrapZone/FocusTrapZoneTest.d.ts.map +1 -1
  8. package/lib/fluent-tester/src/TestComponents/FocusTrapZone/FocusTrapZoneTest.js +46 -23
  9. package/lib/fluent-tester/src/TestComponents/FocusTrapZone/FocusTrapZoneTest.js.map +1 -1
  10. package/lib/fluent-tester/src/testPages.d.ts.map +1 -1
  11. package/lib/fluent-tester/src/testPages.js +0 -14
  12. package/lib/fluent-tester/src/testPages.js.map +1 -1
  13. package/lib-commonjs/E2E/src/index.consts.d.ts +0 -2
  14. package/lib-commonjs/E2E/src/index.consts.d.ts.map +1 -1
  15. package/lib-commonjs/E2E/src/index.consts.js +0 -2
  16. package/lib-commonjs/E2E/src/index.consts.js.map +1 -1
  17. package/lib-commonjs/fluent-tester/src/TestComponents/FocusTrapZone/FocusTrapZoneTest.d.ts.map +1 -1
  18. package/lib-commonjs/fluent-tester/src/TestComponents/FocusTrapZone/FocusTrapZoneTest.js +46 -23
  19. package/lib-commonjs/fluent-tester/src/TestComponents/FocusTrapZone/FocusTrapZoneTest.js.map +1 -1
  20. package/lib-commonjs/fluent-tester/src/testPages.d.ts.map +1 -1
  21. package/lib-commonjs/fluent-tester/src/testPages.js +0 -14
  22. package/lib-commonjs/fluent-tester/src/testPages.js.map +1 -1
  23. package/package.json +2 -3
  24. package/src/TestComponents/FocusTrapZone/FocusTrapZoneTest.tsx +55 -32
  25. package/src/testPages.ts +0 -14
  26. package/lib/E2E/src/TabsLegacy/consts.d.ts +0 -15
  27. package/lib/E2E/src/TabsLegacy/consts.d.ts.map +0 -1
  28. package/lib/E2E/src/TabsLegacy/consts.js +0 -20
  29. package/lib/E2E/src/TabsLegacy/consts.js.map +0 -1
  30. package/lib/E2E/src/TabsV1/consts.d.ts +0 -16
  31. package/lib/E2E/src/TabsV1/consts.d.ts.map +0 -1
  32. package/lib/E2E/src/TabsV1/consts.js +0 -20
  33. package/lib/E2E/src/TabsV1/consts.js.map +0 -1
  34. package/lib/fluent-tester/src/TestComponents/TabsLegacy/TabsLegacyE2ETest.d.ts +0 -3
  35. package/lib/fluent-tester/src/TestComponents/TabsLegacy/TabsLegacyE2ETest.d.ts.map +0 -1
  36. package/lib/fluent-tester/src/TestComponents/TabsLegacy/TabsLegacyE2ETest.js +0 -33
  37. package/lib/fluent-tester/src/TestComponents/TabsLegacy/TabsLegacyE2ETest.js.map +0 -1
  38. package/lib/fluent-tester/src/TestComponents/TabsLegacy/TabsLegacyTest.d.ts +0 -3
  39. package/lib/fluent-tester/src/TestComponents/TabsLegacy/TabsLegacyTest.d.ts.map +0 -1
  40. package/lib/fluent-tester/src/TestComponents/TabsLegacy/TabsLegacyTest.js +0 -207
  41. package/lib/fluent-tester/src/TestComponents/TabsLegacy/TabsLegacyTest.js.map +0 -1
  42. package/lib/fluent-tester/src/TestComponents/TabsLegacy/index.d.ts +0 -2
  43. package/lib/fluent-tester/src/TestComponents/TabsLegacy/index.d.ts.map +0 -1
  44. package/lib/fluent-tester/src/TestComponents/TabsLegacy/index.js +0 -2
  45. package/lib/fluent-tester/src/TestComponents/TabsLegacy/index.js.map +0 -1
  46. package/lib/fluent-tester/src/TestComponents/TabsV1/TabsV1E2ETest.d.ts +0 -3
  47. package/lib/fluent-tester/src/TestComponents/TabsV1/TabsV1E2ETest.d.ts.map +0 -1
  48. package/lib/fluent-tester/src/TestComponents/TabsV1/TabsV1E2ETest.js +0 -28
  49. package/lib/fluent-tester/src/TestComponents/TabsV1/TabsV1E2ETest.js.map +0 -1
  50. package/lib/fluent-tester/src/TestComponents/TabsV1/TabsV1Test.d.ts +0 -3
  51. package/lib/fluent-tester/src/TestComponents/TabsV1/TabsV1Test.d.ts.map +0 -1
  52. package/lib/fluent-tester/src/TestComponents/TabsV1/TabsV1Test.js +0 -183
  53. package/lib/fluent-tester/src/TestComponents/TabsV1/TabsV1Test.js.map +0 -1
  54. package/lib/fluent-tester/src/TestComponents/TabsV1/index.d.ts +0 -2
  55. package/lib/fluent-tester/src/TestComponents/TabsV1/index.d.ts.map +0 -1
  56. package/lib/fluent-tester/src/TestComponents/TabsV1/index.js +0 -2
  57. package/lib/fluent-tester/src/TestComponents/TabsV1/index.js.map +0 -1
  58. package/lib-commonjs/E2E/src/TabsLegacy/consts.d.ts +0 -15
  59. package/lib-commonjs/E2E/src/TabsLegacy/consts.d.ts.map +0 -1
  60. package/lib-commonjs/E2E/src/TabsLegacy/consts.js +0 -23
  61. package/lib-commonjs/E2E/src/TabsLegacy/consts.js.map +0 -1
  62. package/lib-commonjs/E2E/src/TabsV1/consts.d.ts +0 -16
  63. package/lib-commonjs/E2E/src/TabsV1/consts.d.ts.map +0 -1
  64. package/lib-commonjs/E2E/src/TabsV1/consts.js +0 -23
  65. package/lib-commonjs/E2E/src/TabsV1/consts.js.map +0 -1
  66. package/lib-commonjs/fluent-tester/src/TestComponents/TabsLegacy/TabsLegacyE2ETest.d.ts +0 -3
  67. package/lib-commonjs/fluent-tester/src/TestComponents/TabsLegacy/TabsLegacyE2ETest.d.ts.map +0 -1
  68. package/lib-commonjs/fluent-tester/src/TestComponents/TabsLegacy/TabsLegacyE2ETest.js +0 -37
  69. package/lib-commonjs/fluent-tester/src/TestComponents/TabsLegacy/TabsLegacyE2ETest.js.map +0 -1
  70. package/lib-commonjs/fluent-tester/src/TestComponents/TabsLegacy/TabsLegacyTest.d.ts +0 -3
  71. package/lib-commonjs/fluent-tester/src/TestComponents/TabsLegacy/TabsLegacyTest.d.ts.map +0 -1
  72. package/lib-commonjs/fluent-tester/src/TestComponents/TabsLegacy/TabsLegacyTest.js +0 -212
  73. package/lib-commonjs/fluent-tester/src/TestComponents/TabsLegacy/TabsLegacyTest.js.map +0 -1
  74. package/lib-commonjs/fluent-tester/src/TestComponents/TabsLegacy/index.d.ts +0 -2
  75. package/lib-commonjs/fluent-tester/src/TestComponents/TabsLegacy/index.d.ts.map +0 -1
  76. package/lib-commonjs/fluent-tester/src/TestComponents/TabsLegacy/index.js +0 -5
  77. package/lib-commonjs/fluent-tester/src/TestComponents/TabsLegacy/index.js.map +0 -1
  78. package/lib-commonjs/fluent-tester/src/TestComponents/TabsV1/TabsV1E2ETest.d.ts +0 -3
  79. package/lib-commonjs/fluent-tester/src/TestComponents/TabsV1/TabsV1E2ETest.d.ts.map +0 -1
  80. package/lib-commonjs/fluent-tester/src/TestComponents/TabsV1/TabsV1E2ETest.js +0 -32
  81. package/lib-commonjs/fluent-tester/src/TestComponents/TabsV1/TabsV1E2ETest.js.map +0 -1
  82. package/lib-commonjs/fluent-tester/src/TestComponents/TabsV1/TabsV1Test.d.ts +0 -3
  83. package/lib-commonjs/fluent-tester/src/TestComponents/TabsV1/TabsV1Test.d.ts.map +0 -1
  84. package/lib-commonjs/fluent-tester/src/TestComponents/TabsV1/TabsV1Test.js +0 -188
  85. package/lib-commonjs/fluent-tester/src/TestComponents/TabsV1/TabsV1Test.js.map +0 -1
  86. package/lib-commonjs/fluent-tester/src/TestComponents/TabsV1/index.d.ts +0 -2
  87. package/lib-commonjs/fluent-tester/src/TestComponents/TabsV1/index.d.ts.map +0 -1
  88. package/lib-commonjs/fluent-tester/src/TestComponents/TabsV1/index.js +0 -5
  89. package/lib-commonjs/fluent-tester/src/TestComponents/TabsV1/index.js.map +0 -1
  90. package/src/TestComponents/TabsLegacy/TabsLegacyE2ETest.tsx +0 -94
  91. package/src/TestComponents/TabsLegacy/TabsLegacyTest.tsx +0 -302
  92. package/src/TestComponents/TabsLegacy/index.ts +0 -1
  93. package/src/TestComponents/TabsV1/TabsV1E2ETest.tsx +0 -76
  94. package/src/TestComponents/TabsV1/TabsV1Test.tsx +0 -279
  95. package/src/TestComponents/TabsV1/index.ts +0 -1
@@ -1,302 +0,0 @@
1
- import * as React from 'react';
2
- import { Platform, View } from 'react-native';
3
-
4
- import { Tabs, TabsItem, Text, Button } from '@fluentui/react-native';
5
-
6
- import { TabsLegacyE2ETest } from './TabsLegacyE2ETest';
7
- import { TABS_TESTPAGE } from '../../../../E2E/src/TabsLegacy/consts';
8
- import { svgProps } from '../Common/iconExamples';
9
- import { stackStyle } from '../Common/styles';
10
- import type { TestSection, PlatformStatus } from '../Test';
11
- import { Test } from '../Test';
12
-
13
- const TabsMainTest: React.FunctionComponent = () => {
14
- return (
15
- <View style={stackStyle}>
16
- <Tabs label="Tabs">
17
- <TabsItem headerText="Home" itemKey="A">
18
- <Text>Tabs #1</Text>
19
- </TabsItem>
20
- <TabsItem headerText="Files" itemKey="B">
21
- <Text>Tabs #2</Text>
22
- </TabsItem>
23
- <TabsItem headerText="Settings" itemKey="C">
24
- <Text>Tabs #3</Text>
25
- </TabsItem>
26
- </Tabs>
27
- </View>
28
- );
29
- };
30
-
31
- const DisabledTabs: React.FunctionComponent = () => {
32
- return (
33
- <View style={stackStyle}>
34
- <Tabs label="Tabs">
35
- <TabsItem headerText="Home" itemKey="A">
36
- <Text>Tabs #1</Text>
37
- </TabsItem>
38
- <TabsItem headerText="Files" itemKey="B" disabled={true}>
39
- <Text>Tabs #2</Text>
40
- </TabsItem>
41
- <TabsItem headerText="Settings" itemKey="C">
42
- <Text>Tabs #3</Text>
43
- </TabsItem>
44
- </Tabs>
45
- </View>
46
- );
47
- };
48
-
49
- const TabsCountIcon: React.FunctionComponent = () => {
50
- const svgExample = {
51
- svgSource: svgProps,
52
- width: 20,
53
- height: 20,
54
- };
55
-
56
- return (
57
- <View style={stackStyle}>
58
- <Tabs label="Tabs">
59
- <TabsItem headerText="Home" itemKey="A" icon={svgExample} itemCount={23}>
60
- <Text>Tabs #1</Text>
61
- </TabsItem>
62
- <TabsItem itemKey="B" icon={svgExample} itemCount={0}>
63
- <Text>Tabs #2</Text>
64
- </TabsItem>
65
- <TabsItem itemKey="C" icon={svgExample}>
66
- <Text>Tabs #3</Text>
67
- </TabsItem>
68
- </Tabs>
69
- </View>
70
- );
71
- };
72
-
73
- const TabsClickEventTest: React.FunctionComponent = () => {
74
- const [selectedKey, setSelectedKey] = React.useState('home_key');
75
-
76
- const onTabsClick = (key: string) => {
77
- setSelectedKey(key);
78
- };
79
-
80
- return (
81
- <View style={stackStyle}>
82
- <Text>Last onTabsClick from: {selectedKey}</Text>
83
- <Tabs label="Tabs" onTabsClick={onTabsClick} selectedKey={selectedKey}>
84
- <TabsItem headerText="Home" itemKey="home_key">
85
- <Text>Tabs #1</Text>
86
- </TabsItem>
87
- <TabsItem headerText="Files" itemKey="files_key">
88
- <Text>Tabs #2</Text>
89
- </TabsItem>
90
- <TabsItem headerText="Settings" itemKey="settings_key">
91
- <Text>Tabs #3</Text>
92
- </TabsItem>
93
- </Tabs>
94
- </View>
95
- );
96
- };
97
-
98
- const TabsChangingViews: React.FunctionComponent = () => {
99
- // If user wants to control what gets rendered example.
100
- const [selectedKey, setSelectedKey] = React.useState('Tabs #1');
101
-
102
- const onTabsClick = (key: string) => {
103
- setSelectedKey(key);
104
- };
105
-
106
- return (
107
- <View style={stackStyle}>
108
- <Tabs label="Tabs" onTabsClick={onTabsClick} headersOnly={true} selectedKey={selectedKey}>
109
- <TabsItem headerText="Home" itemKey="Tabs #1" />
110
- <TabsItem headerText="File" itemKey="Tabs #2" />
111
- <TabsItem headerText="Settings" itemKey="Tabs #3" />
112
- </Tabs>
113
- <View style={{ marginVertical: 1 }}>
114
- <Text>{selectedKey}</Text>
115
- </View>
116
- </View>
117
- );
118
- };
119
-
120
- const TabsRenderSeparately: React.FunctionComponent = () => {
121
- const [selectedKey, setSelectedKey] = React.useState('rectangleRed');
122
-
123
- const onTabsClick = (key: string) => {
124
- setSelectedKey(key);
125
- };
126
-
127
- const getTabId = (key: string) => {
128
- return `ShapeColorTabs_${key}`;
129
- };
130
-
131
- return (
132
- <View style={stackStyle}>
133
- <View
134
- accessible={true}
135
- focusable={true}
136
- accessibilityLabel={getTabId(selectedKey)}
137
- style={{
138
- width: 100,
139
- height: selectedKey === 'squareRed' ? 100 : 200,
140
- backgroundColor: selectedKey === 'rectangleGreen' ? 'green' : 'red',
141
- }}
142
- />
143
- <Tabs label="Tabs" onTabsClick={onTabsClick} getTabId={getTabId} headersOnly={true} selectedKey={selectedKey}>
144
- <TabsItem headerText="Rectangle Red" itemKey="rectangleRed" />
145
- <TabsItem headerText="Square Red" itemKey="squareRed" />
146
- <TabsItem headerText="Rectangle Green" itemKey="rectangleGreen" />
147
- </Tabs>
148
- </View>
149
- );
150
- };
151
-
152
- const TabsSettingSelectedKey: React.FunctionComponent = () => {
153
- // If user wants to programmatically set the tab's selectedKey with a button example.
154
- const [selectedKey, setSelectedKey] = React.useState('home');
155
- const [currTabItemIndex, setCurrTabItemIndex] = React.useState(0);
156
- const tabItems = ['home', 'file', 'setting'];
157
-
158
- const goToNextTab = () => {
159
- const newCurrTabItemIndex = (currTabItemIndex + 1) % 3;
160
- setCurrTabItemIndex(newCurrTabItemIndex);
161
- setSelectedKey(tabItems[newCurrTabItemIndex]);
162
- };
163
-
164
- return (
165
- <View style={stackStyle}>
166
- <Tabs label="Tabs" selectedKey={selectedKey} isCircularNavigation={true}>
167
- <TabsItem headerText="Home" itemKey="home">
168
- <Text>Tabs #1</Text>
169
- </TabsItem>
170
- <TabsItem headerText="File" itemKey="file">
171
- <Text>Tabs #2</Text>
172
- </TabsItem>
173
- <TabsItem headerText="Setting" itemKey="setting">
174
- <Text>Tabs #3</Text>
175
- </TabsItem>
176
- </Tabs>
177
- <Button content="View Next Tab" onClick={goToNextTab} />
178
- </View>
179
- );
180
- };
181
-
182
- const TabsShowHideItem: React.FunctionComponent = () => {
183
- const [showFirstItem, setshowFirstItem] = React.useState(true);
184
-
185
- const toggleShowFirstItem = React.useCallback(() => {
186
- setshowFirstItem(!showFirstItem);
187
- }, [showFirstItem]);
188
-
189
- return (
190
- <View style={stackStyle}>
191
- <Tabs label="Tabs">
192
- {showFirstItem && (
193
- <TabsItem headerText="Home" itemKey="home">
194
- <Text>Click the button below to show/hide this tabs item.</Text>
195
- <Text>The selected item will not change when the number of tabs items changes.</Text>
196
- <Text>If the selected item was removed, the new first item will be selected.</Text>
197
- </TabsItem>
198
- )}
199
- <TabsItem headerText="File" itemKey="file">
200
- <Text>Tabs #2</Text>
201
- </TabsItem>
202
- <TabsItem headerText="Setting" itemKey="setting">
203
- <Text>Tabs #3</Text>
204
- </TabsItem>
205
- </Tabs>
206
- <Button content={`${showFirstItem ? 'Hide' : 'Show'} First Tabs Item`} onClick={toggleShowFirstItem} />
207
- </View>
208
- );
209
- };
210
-
211
- const TabsWithFlexibility: React.FunctionComponent = () => {
212
- const [selectedKey, setSelectedKey] = React.useState('home');
213
-
214
- const goHomeTab = () => {
215
- setSelectedKey('home');
216
- };
217
-
218
- const onTabsClick = (key: string) => {
219
- setSelectedKey(key);
220
- };
221
-
222
- return (
223
- <View style={stackStyle}>
224
- <Tabs selectedKey={selectedKey} onTabsClick={onTabsClick} isCircularNavigation={true}>
225
- <TabsItem headerText="Home" itemKey="home">
226
- <Text>Tabs #1</Text>
227
- </TabsItem>
228
- <TabsItem headerText="File" itemKey="file">
229
- <Text>Tabs #2</Text>
230
- </TabsItem>
231
- <TabsItem headerText="Setting" itemKey="setting">
232
- <Text>Tabs #3</Text>
233
- </TabsItem>
234
- </Tabs>
235
- <Button content="View Home Tab" onClick={goHomeTab} />
236
- </View>
237
- );
238
- };
239
-
240
- const tabsSections: TestSection[] = [
241
- {
242
- name: 'Default Tabs',
243
- testID: TABS_TESTPAGE,
244
- component: TabsMainTest,
245
- },
246
- {
247
- name: 'Tabs with disabled',
248
- component: DisabledTabs,
249
- },
250
- {
251
- name: 'Trigger onTabsClick event',
252
- component: TabsClickEventTest,
253
- },
254
- {
255
- name: 'User Custom Render',
256
- component: TabsChangingViews,
257
- },
258
- {
259
- name: 'Render Content Separately',
260
- component: TabsRenderSeparately,
261
- },
262
- {
263
- name: 'Override Selected Key',
264
- component: TabsSettingSelectedKey,
265
- },
266
- {
267
- name: 'Show/Hide Tabs item',
268
- component: TabsShowHideItem,
269
- },
270
- {
271
- name: 'More Flexibility',
272
- component: TabsWithFlexibility,
273
- },
274
- ];
275
-
276
- const e2eSections: TestSection[] = [
277
- {
278
- name: 'E2E Tabs Test',
279
- component: TabsLegacyE2ETest,
280
- },
281
- ];
282
-
283
- if (Platform.OS !== 'windows') {
284
- tabsSections.push({
285
- name: 'Count and Icon',
286
- component: TabsCountIcon,
287
- });
288
- }
289
-
290
- export const TabsLegacyTest: React.FunctionComponent = () => {
291
- const status: PlatformStatus = {
292
- win32Status: 'Experimental',
293
- uwpStatus: 'Experimental',
294
- iosStatus: 'Backlog',
295
- macosStatus: 'Experimental',
296
- androidStatus: 'Backlog',
297
- };
298
-
299
- const description = 'With Tabs, users can navigate to another view.';
300
-
301
- return <Test name="Tabs Legacy Test" description={description} sections={tabsSections} status={status} e2eSections={e2eSections} />;
302
- };
@@ -1 +0,0 @@
1
- export * from './TabsLegacyTest';
@@ -1,76 +0,0 @@
1
- import * as React from 'react';
2
- import { View } from 'react-native';
3
-
4
- import { Tabs, TabsItem } from '@fluentui-react-native/experimental-tabs';
5
- import { TextV1 as Text } from '@fluentui-react-native/text';
6
-
7
- import {
8
- TABSV1_TEST_COMPONENT,
9
- TABSV1_ACCESSIBILITY_LABEL,
10
- TABSV1_NO_A11Y_LABEL_COMPONENT,
11
- TABSV1_TEST_COMPONENT_LABEL,
12
- TABSITEMV1_ITEM_1,
13
- TABSITEMV1_ITEM_2,
14
- TABSITEMV1_ITEM_3,
15
- TABSITEMV1_CONTENT_1,
16
- TABSITEMV1_CONTENT_2,
17
- TABSITEMV1_CONTENT_3,
18
- TABSITEMV1_ITEM_1_ACCESSIBILITY_LABEL,
19
- TABSITEMV1_NO_A11Y_LABEL_COMPONENT,
20
- TABSITEMV1_TEST_COMPONENT_LABEL,
21
- } from '../../../../E2E/src/TabsV1/consts';
22
- import { stackStyle } from '../Common/styles';
23
- import { testProps } from '../Common/TestProps';
24
-
25
- export const TabsV1E2ETest: React.FunctionComponent = () => {
26
- return (
27
- <View>
28
- <View style={stackStyle}>
29
- <Tabs
30
- label="Tabs"
31
- accessibilityLabel={TABSV1_ACCESSIBILITY_LABEL}
32
- /* For Android E2E testing purposes, testProps must be passed in after accessibilityLabel. */
33
- {...testProps(TABSV1_TEST_COMPONENT)}
34
- >
35
- <TabsItem
36
- headerText="Home"
37
- itemKey="A"
38
- accessibilityLabel={TABSITEMV1_ITEM_1_ACCESSIBILITY_LABEL}
39
- /* For Android E2E testing purposes, testProps must be passed in after accessibilityLabel. */
40
- {...testProps(TABSITEMV1_ITEM_1)}
41
- >
42
- <Text {...testProps(TABSITEMV1_CONTENT_1)}>Tabs #1</Text>
43
- </TabsItem>
44
- <TabsItem headerText="Files" itemKey="B" {...testProps(TABSITEMV1_ITEM_2)}>
45
- <Text {...testProps(TABSITEMV1_CONTENT_2)}>Tabs #2</Text>
46
- </TabsItem>
47
- <TabsItem headerText="Settings" itemKey="C" {...testProps(TABSITEMV1_ITEM_3)}>
48
- <Text {...testProps(TABSITEMV1_CONTENT_3)}>Tabs #3</Text>
49
- </TabsItem>
50
- </Tabs>
51
- </View>
52
- <View style={stackStyle}>
53
- <Tabs
54
- label={TABSV1_TEST_COMPONENT_LABEL}
55
- /* For Android E2E testing purposes, testProps must be passed in after accessibilityLabel. */
56
- {...testProps(TABSV1_NO_A11Y_LABEL_COMPONENT)}
57
- >
58
- <TabsItem
59
- headerText={TABSITEMV1_TEST_COMPONENT_LABEL}
60
- itemKey="A"
61
- /* For Android E2E testing purposes, testProps must be passed in after accessibilityLabel. */
62
- {...testProps(TABSITEMV1_NO_A11Y_LABEL_COMPONENT)}
63
- >
64
- <Text>Tabs #1</Text>
65
- </TabsItem>
66
- <TabsItem headerText="Files" itemKey="B">
67
- <Text>Tabs #2</Text>
68
- </TabsItem>
69
- <TabsItem headerText="Settings" itemKey="C">
70
- <Text>Tabs #3</Text>
71
- </TabsItem>
72
- </Tabs>
73
- </View>
74
- </View>
75
- );
76
- };
@@ -1,279 +0,0 @@
1
- import * as React from 'react';
2
- import { View, Platform } from 'react-native';
3
-
4
- import { ButtonV1 as Button } from '@fluentui-react-native/button';
5
- import { Tabs, TabsItem } from '@fluentui-react-native/experimental-tabs';
6
- import { TextV1 as Text } from '@fluentui-react-native/text';
7
-
8
- import { TabsV1E2ETest } from './TabsV1E2ETest';
9
- import { TABSV1_TESTPAGE } from '../../../../E2E/src/TabsV1/consts';
10
- import { svgProps } from '../Common/iconExamples';
11
- import { stackStyle } from '../Common/styles';
12
- import type { TestSection, PlatformStatus } from '../Test';
13
- import { Test } from '../Test';
14
-
15
- const TabsMainTest: React.FunctionComponent = () => {
16
- return (
17
- <View style={stackStyle}>
18
- <Tabs label="Tabs">
19
- <TabsItem headerText="Home" itemKey="A">
20
- <Text>Tabs #1</Text>
21
- </TabsItem>
22
- <TabsItem headerText="Files" itemKey="B">
23
- <Text>Tabs #2</Text>
24
- </TabsItem>
25
- <TabsItem headerText="Settings" itemKey="C">
26
- <Text>Tabs #3</Text>
27
- </TabsItem>
28
- </Tabs>
29
- </View>
30
- );
31
- };
32
-
33
- const DisabledTabs: React.FunctionComponent = () => {
34
- return (
35
- <View style={stackStyle}>
36
- <Tabs label="Tabs">
37
- <TabsItem headerText="Home" itemKey="A">
38
- <Text>Tabs #1</Text>
39
- </TabsItem>
40
- <TabsItem headerText="Files" itemKey="B" disabled={true}>
41
- <Text>Tabs #2</Text>
42
- </TabsItem>
43
- <TabsItem headerText="Settings" itemKey="C">
44
- <Text>Tabs #3</Text>
45
- </TabsItem>
46
- </Tabs>
47
- </View>
48
- );
49
- };
50
-
51
- const TabsCountIcon: React.FunctionComponent = () => {
52
- return (
53
- <View style={stackStyle}>
54
- <Tabs label="Tabs">
55
- <TabsItem headerText="Home" itemKey="A" icon={{ svgSource: svgProps, width: 20, height: 20, style: { margin: 5 } }} itemCount={23}>
56
- <Text>Tabs #1</Text>
57
- </TabsItem>
58
- <TabsItem itemKey="B" icon={{ svgSource: svgProps, width: 20, height: 20 }} itemCount={0}>
59
- <Text>Tabs #2</Text>
60
- </TabsItem>
61
- <TabsItem itemKey="C" icon={{ svgSource: svgProps, width: 20, height: 20 }}>
62
- <Text>Tabs #3</Text>
63
- </TabsItem>
64
- </Tabs>
65
- </View>
66
- );
67
- };
68
-
69
- const TabsClickEventTest: React.FunctionComponent = () => {
70
- const [selectedKey, setSelectedKey] = React.useState('home_key');
71
-
72
- const onTabsClick = React.useCallback(
73
- (key: string) => {
74
- setSelectedKey(key);
75
- },
76
- [setSelectedKey],
77
- );
78
-
79
- return (
80
- <View style={stackStyle}>
81
- <Text>{'Last onTabsClick from: ' + selectedKey}</Text>
82
- <Tabs label="Tabs" onTabsClick={onTabsClick} selectedKey={selectedKey}>
83
- <TabsItem headerText="Home" itemKey="home_key">
84
- <Text>Tabs #1</Text>
85
- </TabsItem>
86
- <TabsItem headerText="Files" itemKey="files_key">
87
- <Text>Tabs #2</Text>
88
- </TabsItem>
89
- <TabsItem headerText="Settings" itemKey="settings_key">
90
- <Text>Tabs #3</Text>
91
- </TabsItem>
92
- </Tabs>
93
- </View>
94
- );
95
- };
96
-
97
- const TabsChangingViews: React.FunctionComponent = () => {
98
- // If User wants to control what gets rendered example
99
- const [selectedKey, setSelectedKey] = React.useState('home');
100
-
101
- const onTabsClick = React.useCallback(
102
- (key: string) => {
103
- setSelectedKey(key);
104
- },
105
- [setSelectedKey],
106
- );
107
-
108
- return (
109
- <View style={stackStyle}>
110
- <Tabs label="Tabs" onTabsClick={onTabsClick} headersOnly={true} selectedKey={selectedKey}>
111
- <TabsItem headerText="Home" itemKey="home" />
112
- <TabsItem headerText="File" itemKey="file" />
113
- <TabsItem headerText="Settings" itemKey="settings" />
114
- </Tabs>
115
- <View style={{ marginVertical: 1 }}>
116
- {selectedKey == 'home' && <Text>Tabs #1</Text>}
117
- {selectedKey == 'file' && <Text>Tabs #2</Text>}
118
- {selectedKey == 'settings' && <Text>Tabs #3</Text>}
119
- </View>
120
- </View>
121
- );
122
- };
123
-
124
- const TabsRenderSeparately: React.FunctionComponent = () => {
125
- const [selectedKey, setSelectedKey] = React.useState('rectangleRed');
126
-
127
- const onTabsClick = React.useCallback(
128
- (key: string) => {
129
- setSelectedKey(key);
130
- },
131
- [setSelectedKey],
132
- );
133
-
134
- const getTabId = (key: string) => {
135
- return `ShapeColorPivot_${key}`;
136
- };
137
-
138
- return (
139
- <View style={stackStyle}>
140
- <View
141
- accessible={true}
142
- focusable={true}
143
- accessibilityLabel={getTabId(selectedKey)}
144
- style={{
145
- width: 100,
146
- height: selectedKey === 'squareRed' ? 100 : 200,
147
- backgroundColor: selectedKey === 'rectangleGreen' ? 'green' : 'red',
148
- }}
149
- />
150
- <Tabs label="Tabs" onTabsClick={onTabsClick} getTabId={getTabId} headersOnly={true} selectedKey={selectedKey}>
151
- <TabsItem headerText="Rectangle Red" itemKey="rectangleRed" />
152
- <TabsItem headerText="Square Red" itemKey="squareRed" />
153
- <TabsItem headerText="Rectangle Green" itemKey="rectangleGreen" />
154
- </Tabs>
155
- </View>
156
- );
157
- };
158
-
159
- const TabsSettingSelectedKey: React.FunctionComponent = () => {
160
- // If user wants to programmatically set the selectedKey to control the view
161
- const [selectedKey, setSelectedKey] = React.useState('home');
162
- const [currTabItemIndex, setCurrTabItemIndex] = React.useState(0);
163
- const tabItems = ['home', 'file', 'setting'];
164
-
165
- const goToNextTab = React.useCallback(() => {
166
- const newCurrTabItemIndex = (currTabItemIndex + 1) % 3;
167
- setCurrTabItemIndex(newCurrTabItemIndex);
168
- setSelectedKey(tabItems[newCurrTabItemIndex]);
169
- }, [currTabItemIndex]);
170
-
171
- return (
172
- <View style={stackStyle}>
173
- <Tabs label="Tabs" selectedKey={selectedKey} isCircularNavigation={true}>
174
- <TabsItem headerText="Home" itemKey="home">
175
- <Text>Tabs #1</Text>
176
- </TabsItem>
177
- <TabsItem headerText="File" itemKey="file">
178
- <Text>Tabs #2</Text>
179
- </TabsItem>
180
- <TabsItem headerText="Setting" itemKey="setting">
181
- <Text>Tabs #3</Text>
182
- </TabsItem>
183
- </Tabs>
184
- <Button onClick={goToNextTab}>View Next Tab</Button>
185
- </View>
186
- );
187
- };
188
-
189
- const TabsWithFlexibility: React.FunctionComponent = () => {
190
- const [selectedKey, setSelectedKey] = React.useState('home');
191
-
192
- const goHomeTab = React.useCallback(() => {
193
- setSelectedKey('home');
194
- }, [setSelectedKey]);
195
-
196
- const onTabsClick = React.useCallback(
197
- (key: string) => {
198
- setSelectedKey(key);
199
- },
200
- [setSelectedKey],
201
- );
202
-
203
- return (
204
- <View style={stackStyle}>
205
- <Tabs selectedKey={selectedKey} onTabsClick={onTabsClick} isCircularNavigation={true}>
206
- <TabsItem headerText="Home" itemKey="home">
207
- <Text>Tabs #1</Text>
208
- </TabsItem>
209
- <TabsItem headerText="File" itemKey="file">
210
- <Text>Tabs #2</Text>
211
- </TabsItem>
212
- <TabsItem headerText="Setting" itemKey="setting">
213
- <Text>Tabs #3</Text>
214
- </TabsItem>
215
- </Tabs>
216
- <Button onClick={goHomeTab}>View Home Tab</Button>
217
- </View>
218
- );
219
- };
220
-
221
- const tabsSections: TestSection[] = [
222
- {
223
- name: 'Default Tabs',
224
- testID: TABSV1_TESTPAGE,
225
- component: TabsMainTest,
226
- },
227
- {
228
- name: 'Tabs with disabled',
229
- component: DisabledTabs,
230
- },
231
- {
232
- name: 'Trigger onTabsClick event',
233
- component: TabsClickEventTest,
234
- },
235
- {
236
- name: 'User Custom Render',
237
- component: TabsChangingViews,
238
- },
239
- {
240
- name: 'Render Content Separately',
241
- component: TabsRenderSeparately,
242
- },
243
- {
244
- name: 'Override Selected Key',
245
- component: TabsSettingSelectedKey,
246
- },
247
- {
248
- name: 'More Flexibility',
249
- component: TabsWithFlexibility,
250
- },
251
- ];
252
-
253
- if (Platform.OS !== 'windows') {
254
- tabsSections.push({
255
- name: 'Count and Icon',
256
- component: TabsCountIcon,
257
- });
258
- }
259
-
260
- const e2eSections: TestSection[] = [
261
- {
262
- name: 'E2E Testing TabsV1',
263
- component: TabsV1E2ETest,
264
- },
265
- ];
266
-
267
- export const TabsV1Test: React.FunctionComponent = () => {
268
- const status: PlatformStatus = {
269
- win32Status: 'Production',
270
- uwpStatus: 'Experimental',
271
- iosStatus: 'Backlog',
272
- macosStatus: 'Experimental',
273
- androidStatus: 'Backlog',
274
- };
275
-
276
- const description = 'With Tabs, users can navigate to another view.';
277
-
278
- return <Test name="TabsV1 Test" description={description} sections={tabsSections} status={status} e2eSections={e2eSections} />;
279
- };
@@ -1 +0,0 @@
1
- export * from './TabsV1Test';