@fluentui-react-native/tester 0.69.3 → 0.69.6
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.
- package/CHANGELOG.json +76 -1
- package/CHANGELOG.md +31 -2
- package/lib/FluentTester/TestComponents/Avatar/BasicAvatar.d.ts.map +1 -1
- package/lib/FluentTester/TestComponents/Avatar/BasicAvatar.js +10 -14
- package/lib/FluentTester/TestComponents/Avatar/BasicAvatar.js.map +1 -1
- package/lib/FluentTester/TestComponents/Callout/CalloutTest.d.ts.map +1 -1
- package/lib/FluentTester/TestComponents/Callout/CalloutTest.js +5 -4
- package/lib/FluentTester/TestComponents/Callout/CalloutTest.js.map +1 -1
- package/lib/FluentTester/TestComponents/Common/AlignmentPicker.d.ts +1 -1
- package/lib/FluentTester/TestComponents/Common/AlignmentPicker.d.ts.map +1 -1
- package/lib/FluentTester/TestComponents/Common/AlignmentPicker.js +7 -2
- package/lib/FluentTester/TestComponents/Common/AlignmentPicker.js.map +1 -1
- package/lib/FluentTester/TestComponents/Common/MenuPicker.d.ts +11 -0
- package/lib/FluentTester/TestComponents/Common/MenuPicker.d.ts.map +1 -0
- package/lib/FluentTester/TestComponents/Common/MenuPicker.desktop.d.ts +11 -0
- package/lib/FluentTester/TestComponents/Common/MenuPicker.desktop.d.ts.map +1 -0
- package/lib/FluentTester/TestComponents/Common/MenuPicker.desktop.js +33 -0
- package/lib/FluentTester/TestComponents/Common/MenuPicker.desktop.js.map +1 -0
- package/lib/FluentTester/TestComponents/Common/MenuPicker.js +8 -0
- package/lib/FluentTester/TestComponents/Common/MenuPicker.js.map +1 -0
- package/lib/FluentTester/TestComponents/Common/MenuPicker.macos.d.ts +2 -0
- package/lib/FluentTester/TestComponents/Common/MenuPicker.macos.d.ts.map +1 -0
- package/lib/FluentTester/TestComponents/Common/MenuPicker.macos.js +2 -0
- package/lib/FluentTester/TestComponents/Common/MenuPicker.macos.js.map +1 -0
- package/lib/FluentTester/TestComponents/Common/MenuPicker.win32.d.ts +2 -0
- package/lib/FluentTester/TestComponents/Common/MenuPicker.win32.d.ts.map +1 -0
- package/lib/FluentTester/TestComponents/Common/MenuPicker.win32.js +2 -0
- package/lib/FluentTester/TestComponents/Common/MenuPicker.win32.js.map +1 -0
- package/lib/FluentTester/TestComponents/Common/MenuPicker.windows.d.ts +11 -0
- package/lib/FluentTester/TestComponents/Common/MenuPicker.windows.d.ts.map +1 -0
- package/lib/FluentTester/TestComponents/Common/MenuPicker.windows.js +24 -0
- package/lib/FluentTester/TestComponents/Common/MenuPicker.windows.js.map +1 -0
- package/lib/FluentTester/TestComponents/Common/StyledPicker.d.ts +3 -0
- package/lib/FluentTester/TestComponents/Common/StyledPicker.d.ts.map +1 -0
- package/lib/FluentTester/TestComponents/Common/StyledPicker.js +12 -0
- package/lib/FluentTester/TestComponents/Common/StyledPicker.js.map +1 -0
- package/lib/FluentTester/TestComponents/Common/styles.d.ts +8 -0
- package/lib/FluentTester/TestComponents/Common/styles.d.ts.map +1 -1
- package/lib/FluentTester/TestComponents/Common/styles.js +8 -0
- package/lib/FluentTester/TestComponents/Common/styles.js.map +1 -1
- package/lib/FluentTester/TestComponents/ContextualMenu/ContextualMenuTest.js +1 -1
- package/lib/FluentTester/TestComponents/ContextualMenu/ContextualMenuTest.js.map +1 -1
- package/lib/FluentTester/TestComponents/Persona/StandardUsage.d.ts.map +1 -1
- package/lib/FluentTester/TestComponents/Persona/StandardUsage.js +3 -2
- package/lib/FluentTester/TestComponents/Persona/StandardUsage.js.map +1 -1
- package/lib/FluentTester/TestComponents/PersonaCoin/StandardUsage.d.ts.map +1 -1
- package/lib/FluentTester/TestComponents/PersonaCoin/StandardUsage.js +5 -10
- package/lib/FluentTester/TestComponents/PersonaCoin/StandardUsage.js.map +1 -1
- package/lib/FluentTester/TestComponents/Test.d.ts +1 -1
- package/lib/FluentTester/TestComponents/Test.d.ts.map +1 -1
- package/lib/FluentTester/theme/ThemePickers.android.js.map +1 -1
- package/lib/FluentTester/theme/ThemePickers.d.ts.map +1 -1
- package/lib/FluentTester/theme/ThemePickers.js +6 -2
- package/lib/FluentTester/theme/ThemePickers.js.map +1 -1
- package/lib/FluentTester/theme/ThemePickers.macos.d.ts.map +1 -1
- package/lib/FluentTester/theme/ThemePickers.macos.js +28 -2
- package/lib/FluentTester/theme/ThemePickers.macos.js.map +1 -1
- package/lib-commonjs/FluentTester/TestComponents/Avatar/BasicAvatar.d.ts.map +1 -1
- package/lib-commonjs/FluentTester/TestComponents/Avatar/BasicAvatar.js +13 -17
- package/lib-commonjs/FluentTester/TestComponents/Avatar/BasicAvatar.js.map +1 -1
- package/lib-commonjs/FluentTester/TestComponents/Callout/CalloutTest.d.ts.map +1 -1
- package/lib-commonjs/FluentTester/TestComponents/Callout/CalloutTest.js +4 -3
- package/lib-commonjs/FluentTester/TestComponents/Callout/CalloutTest.js.map +1 -1
- package/lib-commonjs/FluentTester/TestComponents/Common/AlignmentPicker.d.ts +1 -1
- package/lib-commonjs/FluentTester/TestComponents/Common/AlignmentPicker.d.ts.map +1 -1
- package/lib-commonjs/FluentTester/TestComponents/Common/AlignmentPicker.js +7 -2
- package/lib-commonjs/FluentTester/TestComponents/Common/AlignmentPicker.js.map +1 -1
- package/lib-commonjs/FluentTester/TestComponents/Common/MenuPicker.d.ts +11 -0
- package/lib-commonjs/FluentTester/TestComponents/Common/MenuPicker.d.ts.map +1 -0
- package/lib-commonjs/FluentTester/TestComponents/Common/MenuPicker.desktop.d.ts +11 -0
- package/lib-commonjs/FluentTester/TestComponents/Common/MenuPicker.desktop.d.ts.map +1 -0
- package/lib-commonjs/FluentTester/TestComponents/Common/MenuPicker.desktop.js +38 -0
- package/lib-commonjs/FluentTester/TestComponents/Common/MenuPicker.desktop.js.map +1 -0
- package/lib-commonjs/FluentTester/TestComponents/Common/MenuPicker.js +12 -0
- package/lib-commonjs/FluentTester/TestComponents/Common/MenuPicker.js.map +1 -0
- package/lib-commonjs/FluentTester/TestComponents/Common/MenuPicker.macos.d.ts +2 -0
- package/lib-commonjs/FluentTester/TestComponents/Common/MenuPicker.macos.d.ts.map +1 -0
- package/lib-commonjs/FluentTester/TestComponents/Common/MenuPicker.macos.js +5 -0
- package/lib-commonjs/FluentTester/TestComponents/Common/MenuPicker.macos.js.map +1 -0
- package/lib-commonjs/FluentTester/TestComponents/Common/MenuPicker.win32.d.ts +2 -0
- package/lib-commonjs/FluentTester/TestComponents/Common/MenuPicker.win32.d.ts.map +1 -0
- package/lib-commonjs/FluentTester/TestComponents/Common/MenuPicker.win32.js +5 -0
- package/lib-commonjs/FluentTester/TestComponents/Common/MenuPicker.win32.js.map +1 -0
- package/lib-commonjs/FluentTester/TestComponents/Common/MenuPicker.windows.d.ts +11 -0
- package/lib-commonjs/FluentTester/TestComponents/Common/MenuPicker.windows.d.ts.map +1 -0
- package/lib-commonjs/FluentTester/TestComponents/Common/MenuPicker.windows.js +29 -0
- package/lib-commonjs/FluentTester/TestComponents/Common/MenuPicker.windows.js.map +1 -0
- package/lib-commonjs/FluentTester/TestComponents/Common/StyledPicker.d.ts +3 -0
- package/lib-commonjs/FluentTester/TestComponents/Common/StyledPicker.d.ts.map +1 -0
- package/lib-commonjs/FluentTester/TestComponents/Common/StyledPicker.js +16 -0
- package/lib-commonjs/FluentTester/TestComponents/Common/StyledPicker.js.map +1 -0
- package/lib-commonjs/FluentTester/TestComponents/Common/styles.d.ts +8 -0
- package/lib-commonjs/FluentTester/TestComponents/Common/styles.d.ts.map +1 -1
- package/lib-commonjs/FluentTester/TestComponents/Common/styles.js +8 -0
- package/lib-commonjs/FluentTester/TestComponents/Common/styles.js.map +1 -1
- package/lib-commonjs/FluentTester/TestComponents/ContextualMenu/ContextualMenuTest.js +1 -1
- package/lib-commonjs/FluentTester/TestComponents/ContextualMenu/ContextualMenuTest.js.map +1 -1
- package/lib-commonjs/FluentTester/TestComponents/Persona/StandardUsage.d.ts.map +1 -1
- package/lib-commonjs/FluentTester/TestComponents/Persona/StandardUsage.js +2 -1
- package/lib-commonjs/FluentTester/TestComponents/Persona/StandardUsage.js.map +1 -1
- package/lib-commonjs/FluentTester/TestComponents/PersonaCoin/StandardUsage.d.ts.map +1 -1
- package/lib-commonjs/FluentTester/TestComponents/PersonaCoin/StandardUsage.js +7 -11
- package/lib-commonjs/FluentTester/TestComponents/PersonaCoin/StandardUsage.js.map +1 -1
- package/lib-commonjs/FluentTester/TestComponents/Test.d.ts +1 -1
- package/lib-commonjs/FluentTester/TestComponents/Test.d.ts.map +1 -1
- package/lib-commonjs/FluentTester/theme/ThemePickers.android.js.map +1 -1
- package/lib-commonjs/FluentTester/theme/ThemePickers.d.ts.map +1 -1
- package/lib-commonjs/FluentTester/theme/ThemePickers.js +5 -1
- package/lib-commonjs/FluentTester/theme/ThemePickers.js.map +1 -1
- package/lib-commonjs/FluentTester/theme/ThemePickers.macos.d.ts.map +1 -1
- package/lib-commonjs/FluentTester/theme/ThemePickers.macos.js +27 -2
- package/lib-commonjs/FluentTester/theme/ThemePickers.macos.js.map +1 -1
- package/package.json +5 -5
- package/src/FluentTester/TestComponents/Avatar/BasicAvatar.tsx +57 -67
- package/src/FluentTester/TestComponents/Callout/CalloutTest.tsx +17 -27
- package/src/FluentTester/TestComponents/Common/AlignmentPicker.tsx +14 -10
- package/src/FluentTester/TestComponents/Common/MenuPicker.desktop.tsx +60 -0
- package/src/FluentTester/TestComponents/Common/MenuPicker.macos.tsx +1 -0
- package/src/FluentTester/TestComponents/Common/MenuPicker.tsx +32 -0
- package/src/FluentTester/TestComponents/Common/MenuPicker.win32.tsx +1 -0
- package/src/FluentTester/TestComponents/Common/MenuPicker.windows.tsx +38 -0
- package/src/FluentTester/TestComponents/Common/StyledPicker.tsx +12 -0
- package/src/FluentTester/TestComponents/Common/styles.ts +8 -0
- package/src/FluentTester/TestComponents/ContextualMenu/ContextualMenuTest.tsx +1 -1
- package/src/FluentTester/TestComponents/Persona/StandardUsage.tsx +7 -10
- package/src/FluentTester/TestComponents/PersonaCoin/StandardUsage.tsx +13 -24
- package/src/FluentTester/TestComponents/Test.tsx +1 -1
- package/src/FluentTester/theme/ThemePickers.android.tsx +5 -5
- package/src/FluentTester/theme/ThemePickers.macos.tsx +46 -8
- package/src/FluentTester/theme/ThemePickers.tsx +6 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemePickers.js","sourceRoot":"","sources":["../../../src/FluentTester/theme/ThemePickers.tsx"],"names":[],"mappings":";;;;AAAA,wDAA+B;AAC/B,
|
|
1
|
+
{"version":3,"file":"ThemePickers.js","sourceRoot":"","sources":["../../../src/FluentTester/theme/ThemePickers.tsx"],"names":[],"mappings":";;;;AAAA,wDAA+B;AAC/B,6CAAgD;AAChD,8EAAgE;AAChE,+CAA+D;AAC/D,2CAAwD;AACxD,2CAAyD;AAEzD,kEAAiE;AAEpD,QAAA,iBAAiB,GAAG,yBAAU,CAAC,MAAM,CAAC;IACjD,UAAU,EAAE;QACV,aAAa,EAAE,KAAK;KACrB;IAED,MAAM,EAAE;QACN,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,QAAQ;QACpB,OAAO,EAAE,CAAC;KACX;IAED,QAAQ,EAAE;QACR,MAAM,EAAE,EAAE;QACV,KAAK,EAAE,GAAG;QACV,QAAQ,EAAE,EAAE;KACb;CACF,CAAC,CAAC;AAUI,IAAM,UAAU,GAA6C,UAAC,KAAsB;IACjF,IAAA,OAAO,GAAyB,KAAK,QAA9B,EAAE,QAAQ,GAAe,KAAK,SAApB,EAAE,QAAQ,GAAK,KAAK,SAAV,CAAW;IACxC,IAAA,KAAoB,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAA1C,KAAK,QAAA,EAAE,QAAQ,QAA2B,CAAC;IAClD,IAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CACrC,UAAC,QAAgB;QACf,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACnB,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACrB,CAAC,EACD,CAAC,QAAQ,EAAE,QAAQ,CAAC,CACrB,CAAC;IACF,IAAM,oBAAoB,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAC,KAAsB;QAC/D,OAAO,KAAK,CAAC,KAAK,CAAC;IACrB,CAAC,CAAC,CAAC;IACH,OAAO,oBAAC,uBAAU,IAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,yBAAiB,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,oBAAoB,GAAI,CAAC;AACvI,CAAC,CAAC;AAdW,QAAA,UAAU,cAcrB;AAEF,IAAM,WAAW,GAAG,wBAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;AAEzD,IAAM,YAAY,GAA4B;IACnD,IAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CAAC,UAAC,QAAgB;QACvD,0BAAW,CAAC,KAAK,GAAG,QAAuB,CAAC;IAC9C,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAM,eAAe,GAAG,KAAK,CAAC,WAAW,CAAC,UAAC,QAAgB;QACzD,0BAAW,CAAC,SAAS,GAAG,QAAsB,CAAC;IACjD,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAM,kBAAkB,GAAG,KAAK,CAAC,WAAW,CAAC,UAAC,aAAqB;QACjE,0BAAW,CAAC,UAAU,GAAG,aAA2C,CAAC;IACvE,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACL,oBAAC,mBAAI,IAAC,KAAK,EAAE,yBAAiB,CAAC,UAAU;QACvC,oBAAC,mBAAI,IAAC,KAAK,EAAE,yBAAiB,CAAC,MAAM;YACnC,oBAAC,WAAW,kBAAsB;YAClC,oBAAC,kBAAU,IAAC,OAAO,EAAE,0BAAW,CAAC,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,yBAAY,GAAI,CAC5F;QAEP,oBAAC,mBAAI,IAAC,KAAK,EAAE,yBAAiB,CAAC,MAAM;YACnC,oBAAC,WAAW,uBAA2B;YACvC,oBAAC,kBAAU,IAAC,OAAO,EAAE,0BAAW,CAAC,UAAU,EAAE,QAAQ,EAAE,kBAAkB,EAAE,QAAQ,EAAE,+BAAgB,GAAI,CACpG;QAEP,oBAAC,mBAAI,IAAC,KAAK,EAAE,yBAAiB,CAAC,MAAM;YACnC,oBAAC,WAAW,kBAAsB;YAClC,oBAAC,kBAAU,IAAC,OAAO,EAAE,0BAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,yBAAY,GAAI,CACtF,CACF,CACR,CAAC;AACJ,CAAC,CAAC;AA/BW,QAAA,YAAY,gBA+BvB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemePickers.macos.d.ts","sourceRoot":"","sources":["../../../src/FluentTester/theme/ThemePickers.macos.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"ThemePickers.macos.d.ts","sourceRoot":"","sources":["../../../src/FluentTester/theme/ThemePickers.macos.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAU/B,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;CAgB5B,CAAC;AAaH,aAAK,eAAe,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAExD,aAAK,eAAe,GAAG;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC,CAAC;AAiCF,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,iBAAiB,CAAC,eAAe,CAW/D,CAAC;AAIF,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,iBAsBhC,CAAC"}
|
|
@@ -5,7 +5,9 @@ var tslib_1 = require("tslib");
|
|
|
5
5
|
var React = (0, tslib_1.__importStar)(require("react"));
|
|
6
6
|
var react_native_1 = require("react-native");
|
|
7
7
|
var experimental_text_1 = require("@fluentui-react-native/experimental-text");
|
|
8
|
-
var
|
|
8
|
+
var react_native_svg_1 = require("react-native-svg");
|
|
9
|
+
var menu_1 = require("@fluentui-react-native/menu");
|
|
10
|
+
var react_native_2 = require("@fluentui/react-native");
|
|
9
11
|
var CustomThemes_1 = require("./CustomThemes");
|
|
10
12
|
var applyTheme_1 = require("./applyTheme");
|
|
11
13
|
var applyBrand_1 = require("./applyBrand");
|
|
@@ -24,6 +26,29 @@ exports.themePickerStyles = react_native_1.StyleSheet.create({
|
|
|
24
26
|
fontSize: 12,
|
|
25
27
|
},
|
|
26
28
|
});
|
|
29
|
+
var themeMenuPickerStyles = react_native_1.StyleSheet.create({
|
|
30
|
+
container: {
|
|
31
|
+
flexDirection: 'row',
|
|
32
|
+
alignItems: 'center',
|
|
33
|
+
margin: 5,
|
|
34
|
+
},
|
|
35
|
+
svg: {
|
|
36
|
+
padding: 4,
|
|
37
|
+
},
|
|
38
|
+
});
|
|
39
|
+
var ThemeMenuPicker = function (_a) {
|
|
40
|
+
var selected = _a.selected, onChange = _a.onChange, collection = _a.collection, style = _a.style;
|
|
41
|
+
var chevronXml = "\n <svg width=\"12\" height=\"16\" viewBox=\"0 0 11 6\" color=\"#000\">\n <path fill='currentColor' d='M0.646447 0.646447C0.841709 0.451184 1.15829 0.451184 1.35355 0.646447L5.5 4.79289L9.64645 0.646447C9.84171 0.451185 10.1583 0.451185 10.3536 0.646447C10.5488 0.841709 10.5488 1.15829 10.3536 1.35355L5.85355 5.85355C5.65829 6.04882 5.34171 6.04882 5.14645 5.85355L0.646447 1.35355C0.451184 1.15829 0.451184 0.841709 0.646447 0.646447Z' />\n </svg>";
|
|
42
|
+
return (React.createElement(react_native_1.View, { style: (0, tslib_1.__assign)((0, tslib_1.__assign)({}, themeMenuPickerStyles.container), style) },
|
|
43
|
+
React.createElement(menu_1.Menu, null,
|
|
44
|
+
React.createElement(menu_1.MenuTrigger, null,
|
|
45
|
+
React.createElement(react_native_2.ButtonV1, null,
|
|
46
|
+
React.createElement(experimental_text_1.Text, null, selected),
|
|
47
|
+
React.createElement(react_native_1.View, { style: themeMenuPickerStyles.svg },
|
|
48
|
+
React.createElement(react_native_svg_1.SvgXml, { xml: chevronXml })))),
|
|
49
|
+
React.createElement(menu_1.MenuPopover, null,
|
|
50
|
+
React.createElement(menu_1.MenuList, null, collection.map(function (entry, index) { return (React.createElement(menu_1.MenuItem, { onClick: function () { return onChange(entry.value); }, key: "entry".concat(index) }, entry.label)); }))))));
|
|
51
|
+
};
|
|
27
52
|
var PartPicker = function (props) {
|
|
28
53
|
var initial = props.initial, contents = props.contents, onChange = props.onChange;
|
|
29
54
|
var _a = React.useState(initial), value = _a[0], setValue = _a[1];
|
|
@@ -31,7 +56,7 @@ var PartPicker = function (props) {
|
|
|
31
56
|
setValue(newValue);
|
|
32
57
|
onChange(newValue);
|
|
33
58
|
}, [setValue, onChange]);
|
|
34
|
-
return
|
|
59
|
+
return React.createElement(ThemeMenuPicker, { selected: value, style: exports.themePickerStyles.dropdown, onChange: onValueChange, collection: contents });
|
|
35
60
|
};
|
|
36
61
|
exports.PartPicker = PartPicker;
|
|
37
62
|
var PickerLabel = experimental_text_1.Text.customize({ variant: 'bodySemibold' });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemePickers.macos.js","sourceRoot":"","sources":["../../../src/FluentTester/theme/ThemePickers.macos.tsx"],"names":[],"mappings":";;;;AAAA,wDAA+B;AAC/B,6CAAgD;AAChD,8EAAgE;AAChE,
|
|
1
|
+
{"version":3,"file":"ThemePickers.macos.js","sourceRoot":"","sources":["../../../src/FluentTester/theme/ThemePickers.macos.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fluentui-react-native/tester",
|
|
3
|
-
"version": "0.69.
|
|
3
|
+
"version": "0.69.6",
|
|
4
4
|
"description": "A test app to test FluentUI React Native Components during development",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Microsoft <fluentuinativeowners@microsoft.com>",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"dependencies": {
|
|
28
28
|
"@fluentui-react-native/android-theme": ">=0.10.0 <1.0.0",
|
|
29
29
|
"@fluentui-react-native/apple-theme": ">=0.12.3 <1.0.0",
|
|
30
|
-
"@fluentui-react-native/avatar": "^1.1.
|
|
30
|
+
"@fluentui-react-native/avatar": "^1.1.4",
|
|
31
31
|
"@fluentui-react-native/badge": ">=0.0.44 <1.0.0",
|
|
32
32
|
"@fluentui-react-native/button": ">=0.22.29 <1.0.0",
|
|
33
33
|
"@fluentui-react-native/default-theme": ">=0.13.0 <1.0.0",
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"@fluentui-react-native/experimental-drawer": ">=0.1.13 <1.0.0",
|
|
39
39
|
"@fluentui-react-native/experimental-native-date-picker": ">=0.5.0 <1.0.0",
|
|
40
40
|
"@fluentui-react-native/experimental-expander": "0.3.33",
|
|
41
|
-
"@fluentui-react-native/experimental-menu-button": ">=0.3.
|
|
41
|
+
"@fluentui-react-native/experimental-menu-button": ">=0.3.50 <1.0.0",
|
|
42
42
|
"@fluentui-react-native/experimental-shadow": "0.2.0",
|
|
43
43
|
"@fluentui-react-native/experimental-shimmer": "0.6.33",
|
|
44
44
|
"@fluentui-react-native/experimental-tabs": "0.4.52",
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"@fluentui-react-native/framework": ">=0.7.30 <1.0.0",
|
|
47
47
|
"@fluentui-react-native/icon": "0.12.1",
|
|
48
48
|
"@fluentui-react-native/interactive-hooks": ">=0.16.3 <1.0.0",
|
|
49
|
-
"@fluentui-react-native/menu": "
|
|
49
|
+
"@fluentui-react-native/menu": "^1.0.2",
|
|
50
50
|
"@fluentui-react-native/notification": "0.1.0",
|
|
51
51
|
"@fluentui-react-native/stack": ">=0.6.29 <1.0.0",
|
|
52
52
|
"@fluentui-react-native/theme": ">=0.6.11 <1.0.0",
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
"@fluentui-react-native/themed-stylesheet": "^1.3.3",
|
|
55
55
|
"@fluentui-react-native/theming-utils": ">=0.13.0 <1.0.0",
|
|
56
56
|
"@fluentui-react-native/win32-theme": ">=0.19.2 <1.0.0",
|
|
57
|
-
"@fluentui/react-native": ">=0.30.
|
|
57
|
+
"@fluentui/react-native": ">=0.30.4 <1.0.0",
|
|
58
58
|
"@react-native-community/slider": "^4.2.0",
|
|
59
59
|
"@react-native-menu/menu": "^0.1.2",
|
|
60
60
|
"@react-native-picker/picker": "^2.2.1",
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import React, { useState, useCallback, FunctionComponent } from 'react';
|
|
2
2
|
import { AvatarSize, AvatarSizes, AvatarColor, AvatarColors, Avatar, AvatarActive } from '@fluentui-react-native/avatar';
|
|
3
3
|
import { PresenceBadgeStatuses, PresenceBadgeStatus } from '@fluentui-react-native/badge';
|
|
4
|
-
import { Switch, View, Text,
|
|
4
|
+
import { Switch, View, Text, ColorValue, Platform } from 'react-native';
|
|
5
5
|
import { satyaPhotoUrl, undefinedText } from './../PersonaCoin/styles';
|
|
6
6
|
import { commonTestStyles as commonStyles } from '../Common/styles';
|
|
7
7
|
import { useTheme } from '@fluentui-react-native/theme-types';
|
|
8
8
|
import TestSvg from '../../test-data/test.svg';
|
|
9
9
|
import { SvgIconProps } from '@fluentui-react-native/icon';
|
|
10
|
+
import { StyledPicker } from '../Common/StyledPicker';
|
|
10
11
|
|
|
11
12
|
type WithUndefined<T> = T | typeof undefinedText;
|
|
12
13
|
|
|
@@ -16,19 +17,6 @@ const avatarColors: AvatarColor[] = ['neutral', 'brand', 'colorful', ...AvatarCo
|
|
|
16
17
|
const allSizes: WithUndefined<AvatarSize>[] = [undefinedText, ...AvatarSizes];
|
|
17
18
|
const allPresences: WithUndefined<PresenceBadgeStatus>[] = [undefinedText, ...PresenceBadgeStatuses];
|
|
18
19
|
|
|
19
|
-
const StyledPicker = (props) => {
|
|
20
|
-
const { prompt, selected, onChange, collection } = props;
|
|
21
|
-
const theme = useTheme();
|
|
22
|
-
const pickerStyles = { color: theme.colors.inputText as ColorValue, ...commonStyles.header };
|
|
23
|
-
return (
|
|
24
|
-
<Picker prompt={prompt} style={pickerStyles} selectedValue={selected} onValueChange={onChange}>
|
|
25
|
-
{collection.map((value, index) => (
|
|
26
|
-
<Picker.Item label={value} key={index} value={value} />
|
|
27
|
-
))}
|
|
28
|
-
</Picker>
|
|
29
|
-
);
|
|
30
|
-
};
|
|
31
|
-
|
|
32
20
|
export const StandardUsage: FunctionComponent = () => {
|
|
33
21
|
const [isSquare, setSquare] = useState(false);
|
|
34
22
|
const [showImage, setShowImage] = useState(true);
|
|
@@ -64,7 +52,7 @@ export const StandardUsage: FunctionComponent = () => {
|
|
|
64
52
|
|
|
65
53
|
return (
|
|
66
54
|
<View style={commonStyles.root}>
|
|
67
|
-
<View style={commonStyles.
|
|
55
|
+
<View style={commonStyles.settingsPicker}>
|
|
68
56
|
<View style={commonStyles.switch}>
|
|
69
57
|
<Text style={textStyles}>Show image</Text>
|
|
70
58
|
<Switch value={showImage} onValueChange={setShowImage} />
|
|
@@ -84,58 +72,60 @@ export const StandardUsage: FunctionComponent = () => {
|
|
|
84
72
|
<StyledPicker prompt="Avatar Color" selected={avatarColor} onChange={onAvatarColorChange} collection={avatarColors} />
|
|
85
73
|
<StyledPicker prompt="Presence status" selected={presence} onChange={onPresenceChange} collection={allPresences} />
|
|
86
74
|
</View>
|
|
87
|
-
<
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
75
|
+
<View style={commonStyles.pickerControlled}>
|
|
76
|
+
<Avatar
|
|
77
|
+
accessibilityLabel="Fall-back Icon"
|
|
78
|
+
accessibilityHint="A picture representing a user"
|
|
79
|
+
size={imageSize === undefinedText ? undefined : imageSize}
|
|
80
|
+
/>
|
|
81
|
+
<Avatar
|
|
82
|
+
active={active}
|
|
83
|
+
activeAppearance={activeAppearance}
|
|
84
|
+
size={imageSize === undefinedText ? undefined : imageSize}
|
|
85
|
+
name="Satya Nadella"
|
|
86
|
+
shape={isSquare ? 'square' : 'circular'}
|
|
87
|
+
accessibilityLabel="Photo of Satya Nadella"
|
|
88
|
+
badge={{ status: presence === undefinedText ? undefined : presence, outOfOffice }}
|
|
89
|
+
imageUrl={showImage ? satyaPhotoUrl : undefined}
|
|
90
|
+
avatarColor={avatarColor}
|
|
91
|
+
/>
|
|
92
|
+
<Avatar
|
|
93
|
+
active={active}
|
|
94
|
+
activeAppearance={activeAppearance}
|
|
95
|
+
size={imageSize === undefinedText ? undefined : imageSize}
|
|
96
|
+
shape={isSquare ? 'square' : 'circular'}
|
|
97
|
+
accessibilityLabel="Icon"
|
|
98
|
+
name="* Richard Faynman *"
|
|
99
|
+
avatarColor="#ff0099"
|
|
100
|
+
initialsColor="yellow"
|
|
101
|
+
/>
|
|
102
|
+
{svgIconsEnabled && (
|
|
103
|
+
<>
|
|
104
|
+
<Avatar
|
|
105
|
+
active={active}
|
|
106
|
+
activeAppearance={activeAppearance}
|
|
107
|
+
size={imageSize === undefinedText ? undefined : imageSize}
|
|
108
|
+
shape={isSquare ? 'square' : 'circular'}
|
|
109
|
+
accessibilityLabel="SVG Icon"
|
|
110
|
+
icon={{ fontSource: { ...fontBuiltInProps, fontSize: 32 }, color: 'red' }}
|
|
111
|
+
avatarColor={avatarColor}
|
|
112
|
+
badge={{ status: 'outOfOffice', outOfOffice }}
|
|
113
|
+
/>
|
|
114
|
+
<Avatar
|
|
115
|
+
accessibilityHint="A picture representing a user"
|
|
116
|
+
active={active}
|
|
117
|
+
activeAppearance={activeAppearance}
|
|
118
|
+
size={imageSize === undefinedText ? undefined : imageSize}
|
|
119
|
+
shape={isSquare ? 'square' : 'circular'}
|
|
120
|
+
accessibilityLabel="SVG Icon"
|
|
121
|
+
icon={{ svgSource: svgProps }}
|
|
122
|
+
avatarColor={avatarColor}
|
|
123
|
+
badge={{ status: 'away', outOfOffice }}
|
|
124
|
+
idForColor="15"
|
|
125
|
+
/>
|
|
126
|
+
</>
|
|
127
|
+
)}
|
|
128
|
+
</View>
|
|
139
129
|
</View>
|
|
140
130
|
);
|
|
141
131
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { ScreenRect, Text, View, Switch,
|
|
2
|
+
import { ScreenRect, Text, View, Switch, ScrollView } from 'react-native';
|
|
3
3
|
import {
|
|
4
4
|
Button,
|
|
5
5
|
Callout,
|
|
@@ -14,6 +14,7 @@ import { CALLOUT_TESTPAGE } from './consts';
|
|
|
14
14
|
import { Test, TestSection, PlatformStatus } from '../Test';
|
|
15
15
|
import { E2ECalloutTest } from './CalloutE2ETest';
|
|
16
16
|
import { fluentTesterStyles } from '../Common/styles';
|
|
17
|
+
import { MenuPicker } from '../Common/MenuPicker';
|
|
17
18
|
|
|
18
19
|
const StandardCallout: React.FunctionComponent = () => {
|
|
19
20
|
const [showStandardCallout, setShowStandardCallout] = React.useState(false);
|
|
@@ -233,35 +234,24 @@ const StandardCallout: React.FunctionComponent = () => {
|
|
|
233
234
|
<Text>Enable ScrollView Callout</Text>
|
|
234
235
|
</View>
|
|
235
236
|
|
|
236
|
-
<
|
|
237
|
+
<MenuPicker
|
|
237
238
|
prompt="Background Color"
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
))}
|
|
244
|
-
</Picker>
|
|
245
|
-
|
|
246
|
-
<Picker
|
|
239
|
+
selected={selectedBackgroundColor || colorDefault}
|
|
240
|
+
onChange={(color) => setSelectedBackgroundColor(color === colorDefault ? undefined : color)}
|
|
241
|
+
collection={colorSelections}
|
|
242
|
+
/>
|
|
243
|
+
<MenuPicker
|
|
247
244
|
prompt="Border Color"
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
))}
|
|
254
|
-
</Picker>
|
|
255
|
-
|
|
256
|
-
<Picker
|
|
245
|
+
selected={selectedBorderColor || colorDefault}
|
|
246
|
+
onChange={(color) => setSelectedBorderColor(color === colorDefault ? undefined : color)}
|
|
247
|
+
collection={colorSelections}
|
|
248
|
+
/>
|
|
249
|
+
<MenuPicker
|
|
257
250
|
prompt="Border Width"
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
<Picker.Item label={width} key={index} value={width} />
|
|
263
|
-
))}
|
|
264
|
-
</Picker>
|
|
251
|
+
selected={selectedBorderWidth || borderWidthDefault}
|
|
252
|
+
onChange={(color) => setSelectedBorderWidth(color === colorDefault ? undefined : color)}
|
|
253
|
+
collection={borderWidthSelections}
|
|
254
|
+
/>
|
|
265
255
|
</View>
|
|
266
256
|
|
|
267
257
|
<Separator vertical />
|
|
@@ -1,28 +1,32 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { undefinedText } from '../PersonaCoin/styles';
|
|
3
3
|
import { IconAlignment } from '@fluentui/react-native';
|
|
4
|
-
import {
|
|
4
|
+
import { StyleProp, ViewStyle } from 'react-native';
|
|
5
|
+
import { MenuPicker } from './MenuPicker';
|
|
5
6
|
|
|
6
7
|
const alignmentValues: Array<typeof undefinedText | IconAlignment> = [undefinedText, 'start', 'center', 'end'];
|
|
7
8
|
|
|
8
9
|
interface IAlignmentPickerProps {
|
|
9
10
|
style?: StyleProp<ViewStyle>;
|
|
10
11
|
label: string;
|
|
11
|
-
onSelectionChange: (value: IconAlignment
|
|
12
|
+
onSelectionChange: (value: IconAlignment) => void;
|
|
12
13
|
}
|
|
13
14
|
|
|
14
15
|
export const AlignmentPicker: React.FunctionComponent<IAlignmentPickerProps> = (props: IAlignmentPickerProps) => {
|
|
15
16
|
const { label, onSelectionChange, style } = props;
|
|
17
|
+
const [selectedValue, setSelectedValue] = React.useState<IconAlignment>();
|
|
18
|
+
|
|
16
19
|
return (
|
|
17
|
-
<
|
|
20
|
+
<MenuPicker
|
|
18
21
|
style={style}
|
|
19
22
|
prompt={label}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
23
|
+
selected={selectedValue || undefinedText}
|
|
24
|
+
onChange={(value: IconAlignment, index: number) => {
|
|
25
|
+
const alignmentValue = index == 0 ? undefined : value;
|
|
26
|
+
onSelectionChange(alignmentValue);
|
|
27
|
+
setSelectedValue(alignmentValue);
|
|
28
|
+
}}
|
|
29
|
+
collection={alignmentValues}
|
|
30
|
+
/>
|
|
27
31
|
);
|
|
28
32
|
};
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { Text, View, StyleSheet } from 'react-native';
|
|
3
|
+
import { Menu, MenuItem, MenuTrigger, MenuPopover, MenuList } from '@fluentui-react-native/menu';
|
|
4
|
+
import { ButtonV1 as Button } from '@fluentui/react-native';
|
|
5
|
+
import { SvgXml } from 'react-native-svg';
|
|
6
|
+
|
|
7
|
+
const chevronXml = `
|
|
8
|
+
<svg width="12" height="16" viewBox="0 0 11 6" color="#000">
|
|
9
|
+
<path fill='currentColor' d='M0.646447 0.646447C0.841709 0.451184 1.15829 0.451184 1.35355 0.646447L5.5 4.79289L9.64645 0.646447C9.84171 0.451185 10.1583 0.451185 10.3536 0.646447C10.5488 0.841709 10.5488 1.15829 10.3536 1.35355L5.85355 5.85355C5.65829 6.04882 5.34171 6.04882 5.14645 5.85355L0.646447 1.35355C0.451184 1.15829 0.451184 0.841709 0.646447 0.646447Z' />
|
|
10
|
+
</svg>`;
|
|
11
|
+
|
|
12
|
+
interface MenuPickerProps {
|
|
13
|
+
prompt?: string;
|
|
14
|
+
selected?: any;
|
|
15
|
+
onChange?: (value: any, index?: number) => void;
|
|
16
|
+
collection?: any[];
|
|
17
|
+
style?: any;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export const MenuPicker: React.FunctionComponent<MenuPickerProps> = (props: MenuPickerProps) => {
|
|
21
|
+
const { prompt, selected, onChange, collection } = props;
|
|
22
|
+
return (
|
|
23
|
+
<View style={menuPickerStyles.container}>
|
|
24
|
+
<Text style={menuPickerStyles.prompt}>{prompt}</Text>
|
|
25
|
+
<Menu>
|
|
26
|
+
<MenuTrigger>
|
|
27
|
+
<Button>
|
|
28
|
+
<Text>{selected}</Text>
|
|
29
|
+
<View style={menuPickerStyles.chevronContainer}>
|
|
30
|
+
<SvgXml xml={chevronXml} />
|
|
31
|
+
</View>
|
|
32
|
+
</Button>
|
|
33
|
+
</MenuTrigger>
|
|
34
|
+
<MenuPopover>
|
|
35
|
+
<MenuList>
|
|
36
|
+
{collection.map((value, index) => (
|
|
37
|
+
<MenuItem onClick={() => onChange(value, index)} key={index}>
|
|
38
|
+
{value}
|
|
39
|
+
</MenuItem>
|
|
40
|
+
))}
|
|
41
|
+
</MenuList>
|
|
42
|
+
</MenuPopover>
|
|
43
|
+
</Menu>
|
|
44
|
+
</View>
|
|
45
|
+
);
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
const menuPickerStyles = StyleSheet.create({
|
|
49
|
+
container: {
|
|
50
|
+
flexDirection: 'row',
|
|
51
|
+
alignItems: 'center',
|
|
52
|
+
margin: 5,
|
|
53
|
+
},
|
|
54
|
+
prompt: {
|
|
55
|
+
marginRight: 5,
|
|
56
|
+
},
|
|
57
|
+
chevronContainer: {
|
|
58
|
+
padding: 4,
|
|
59
|
+
},
|
|
60
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './MenuPicker.desktop';
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { Picker } from '@react-native-picker/picker';
|
|
3
|
+
|
|
4
|
+
/*
|
|
5
|
+
* The MenuPicker was created because the RN Core Picker was deprecated (preventing us from updating to RN 0.66).
|
|
6
|
+
* MenuPicker uses the community Picker package for iOS/Win32 and our own Picker for Win32/MacOS.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
interface MenuPickerProps {
|
|
10
|
+
prompt?: string;
|
|
11
|
+
selected?: any;
|
|
12
|
+
onChange?: (value: any, index?: number) => void;
|
|
13
|
+
collection?: any[];
|
|
14
|
+
style?: any;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export const MenuPicker: React.FunctionComponent<MenuPickerProps> = (props: MenuPickerProps) => {
|
|
18
|
+
const { prompt, selected, onChange, collection, style } = props;
|
|
19
|
+
|
|
20
|
+
return (
|
|
21
|
+
<Picker
|
|
22
|
+
prompt={prompt}
|
|
23
|
+
selectedValue={selected}
|
|
24
|
+
onValueChange={(itemValue: any, index: number) => onChange(itemValue, index)}
|
|
25
|
+
style={{ ...style }}
|
|
26
|
+
>
|
|
27
|
+
{collection.map((value, index) => (
|
|
28
|
+
<Picker.Item label={value} key={index} value={value} />
|
|
29
|
+
))}
|
|
30
|
+
</Picker>
|
|
31
|
+
);
|
|
32
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './MenuPicker.desktop';
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export * from './MenuPicker.desktop';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { Button, Text, View, StyleSheet } from 'react-native';
|
|
4
|
+
|
|
5
|
+
interface MenuPickerProps {
|
|
6
|
+
prompt?: string;
|
|
7
|
+
selected?: any;
|
|
8
|
+
onChange?: (value: any, index?: number) => void;
|
|
9
|
+
collection?: any[];
|
|
10
|
+
style?: any;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export const MenuPicker: React.FunctionComponent<MenuPickerProps> = (props: MenuPickerProps) => {
|
|
14
|
+
const { prompt, onChange, collection } = props;
|
|
15
|
+
return (
|
|
16
|
+
<View style={menuPickerStyles.container}>
|
|
17
|
+
<Text style={menuPickerStyles.prompt}>{prompt}</Text>
|
|
18
|
+
{collection.map((value, index) => (
|
|
19
|
+
<Button onPress={() => onChange(value, index)} key={index} title={value} />
|
|
20
|
+
))}
|
|
21
|
+
</View>
|
|
22
|
+
);
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
const menuPickerStyles = StyleSheet.create({
|
|
26
|
+
container: {
|
|
27
|
+
flexDirection: 'row',
|
|
28
|
+
flexWrap: 'wrap',
|
|
29
|
+
alignItems: 'center',
|
|
30
|
+
margin: 5,
|
|
31
|
+
},
|
|
32
|
+
prompt: {
|
|
33
|
+
marginRight: 5,
|
|
34
|
+
},
|
|
35
|
+
chevronContainer: {
|
|
36
|
+
padding: 4,
|
|
37
|
+
},
|
|
38
|
+
});
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { MenuPicker } from './MenuPicker';
|
|
3
|
+
import { ColorValue } from 'react-native';
|
|
4
|
+
import { useTheme } from '@fluentui-react-native/theme-types';
|
|
5
|
+
import { commonTestStyles as commonStyles } from './styles';
|
|
6
|
+
|
|
7
|
+
export const StyledPicker = (props) => {
|
|
8
|
+
const { prompt, selected, onChange, collection } = props;
|
|
9
|
+
const theme = useTheme();
|
|
10
|
+
const pickerStyles = { color: theme.colors.inputText as ColorValue, ...commonStyles.header };
|
|
11
|
+
return <MenuPicker prompt={prompt} style={pickerStyles} selected={selected} onChange={onChange} collection={collection} />;
|
|
12
|
+
};
|
|
@@ -26,6 +26,14 @@ export const commonTestStyles = StyleSheet.create({
|
|
|
26
26
|
settings: {
|
|
27
27
|
flexGrow: 1,
|
|
28
28
|
},
|
|
29
|
+
settingsPicker: {
|
|
30
|
+
flexDirection: 'column',
|
|
31
|
+
flex: 1,
|
|
32
|
+
},
|
|
33
|
+
pickerControlled: {
|
|
34
|
+
flex: 1,
|
|
35
|
+
flexDirection: 'row',
|
|
36
|
+
},
|
|
29
37
|
vmargin: {
|
|
30
38
|
marginVertical: 6,
|
|
31
39
|
},
|
|
@@ -508,7 +508,7 @@ const contextualMenuSections: TestSection[] = [
|
|
|
508
508
|
|
|
509
509
|
export const ContextualMenuTest: React.FunctionComponent = () => {
|
|
510
510
|
const status: PlatformStatus = {
|
|
511
|
-
win32Status: '
|
|
511
|
+
win32Status: 'Deprecated',
|
|
512
512
|
uwpStatus: 'Backlog',
|
|
513
513
|
iosStatus: 'Backlog',
|
|
514
514
|
macosStatus: 'Backlog',
|
|
@@ -2,8 +2,9 @@ import * as React from 'react';
|
|
|
2
2
|
import { Persona, PersonaSize } from '@fluentui/react-native';
|
|
3
3
|
import { rajeshImageUrl } from './styles';
|
|
4
4
|
import { commonTestStyles as commonStyles } from '../Common/styles';
|
|
5
|
-
import { View, Text, Switch
|
|
5
|
+
import { View, Text, Switch } from 'react-native';
|
|
6
6
|
import { undefinedText } from '../PersonaCoin/styles';
|
|
7
|
+
import { MenuPicker } from '../Common/MenuPicker';
|
|
7
8
|
|
|
8
9
|
type WithUndefined<T> = T | typeof undefinedText;
|
|
9
10
|
|
|
@@ -53,17 +54,13 @@ export const StandardUsage: React.FunctionComponent = () => {
|
|
|
53
54
|
<SwitchWithLabel label="Show secondary text" value={showSecondary} onValueChange={setShowSecondary} />
|
|
54
55
|
<SwitchWithLabel label="Show tertiary text" value={showTertiary} onValueChange={setShowTertiary} />
|
|
55
56
|
<SwitchWithLabel label="Show optional text" value={showOptional} onValueChange={setShowOptional} />
|
|
56
|
-
|
|
57
|
-
<Picker
|
|
57
|
+
<MenuPicker
|
|
58
58
|
prompt="Size"
|
|
59
59
|
style={commonStyles.header}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
<Picker.Item label={size} key={index} value={size} />
|
|
65
|
-
))}
|
|
66
|
-
</Picker>
|
|
60
|
+
selected={imageSize || undefinedText}
|
|
61
|
+
onChange={(size: PersonaSize | typeof undefinedText) => setImageSize(size === undefinedText ? undefined : size)}
|
|
62
|
+
collection={allSizes}
|
|
63
|
+
/>
|
|
67
64
|
</View>
|
|
68
65
|
|
|
69
66
|
<Persona
|