accessability toggle button
Summary: Should be more discoverable changelog: UIDebugger accessibility mode for iOS launched, look for icon to the right of the search bar Reviewed By: zats Differential Revision: D49547952 fbshipit-source-id: 3befdffedb34907d9824bb66b86e20fd4a1a42ff
This commit is contained in:
committed by
Facebook GitHub Bot
parent
10d5a2933a
commit
a4933373b5
@@ -18,22 +18,20 @@ import {
|
|||||||
Space,
|
Space,
|
||||||
Switch,
|
Switch,
|
||||||
Badge,
|
Badge,
|
||||||
Dropdown,
|
|
||||||
} from 'antd';
|
} from 'antd';
|
||||||
|
import {Glyph} from 'flipper';
|
||||||
import {
|
import {
|
||||||
EyeOutlined,
|
EyeOutlined,
|
||||||
PauseCircleOutlined,
|
PauseCircleOutlined,
|
||||||
AppstoreOutlined,
|
|
||||||
PlayCircleOutlined,
|
PlayCircleOutlined,
|
||||||
SearchOutlined,
|
SearchOutlined,
|
||||||
} from '@ant-design/icons';
|
} from '@ant-design/icons';
|
||||||
import {usePlugin, useValue, Layout} from 'flipper-plugin';
|
import {usePlugin, useValue, Layout, theme} from 'flipper-plugin';
|
||||||
import {FrameworkEventMetadata, FrameworkEventType} from '../../ClientTypes';
|
import {FrameworkEventMetadata, FrameworkEventType} from '../../ClientTypes';
|
||||||
import {
|
import {
|
||||||
buildTreeSelectData,
|
buildTreeSelectData,
|
||||||
FrameworkEventsTreeSelect,
|
FrameworkEventsTreeSelect,
|
||||||
} from '../shared/FrameworkEventsTreeSelect';
|
} from '../shared/FrameworkEventsTreeSelect';
|
||||||
import {TraversalMode} from '../../DesktopTypes';
|
|
||||||
|
|
||||||
export const TreeControls: React.FC = () => {
|
export const TreeControls: React.FC = () => {
|
||||||
const instance = usePlugin(plugin);
|
const instance = usePlugin(plugin);
|
||||||
@@ -56,43 +54,11 @@ export const TreeControls: React.FC = () => {
|
|||||||
const supportedTraversalModes = useValue(
|
const supportedTraversalModes = useValue(
|
||||||
instance.uiState.supportedTraversalModes,
|
instance.uiState.supportedTraversalModes,
|
||||||
);
|
);
|
||||||
const labelForMode = (mode: TraversalMode) => {
|
|
||||||
switch (mode) {
|
|
||||||
case 'view-hierarchy':
|
|
||||||
return 'UI Hierarchy';
|
|
||||||
case 'accessibility-hierarchy':
|
|
||||||
return 'Accessibility Hierarchy';
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
const isConnected = useValue(instance.uiState.isConnected);
|
const isConnected = useValue(instance.uiState.isConnected);
|
||||||
|
|
||||||
const menus = supportedTraversalModes.map((mode) => ({
|
|
||||||
key: mode,
|
|
||||||
label: labelForMode(mode),
|
|
||||||
}));
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Layout.Horizontal gap="medium" pad="medium">
|
<Layout.Horizontal gap="medium" pad="medium">
|
||||||
{supportedTraversalModes.length > 1 ? (
|
|
||||||
<Dropdown
|
|
||||||
disabled={!isConnected}
|
|
||||||
menu={{
|
|
||||||
selectable: true,
|
|
||||||
selectedKeys: [currentTraversalMode],
|
|
||||||
items: menus,
|
|
||||||
onSelect: async (event) => {
|
|
||||||
const mode = event.selectedKeys[0] as TraversalMode;
|
|
||||||
instance.uiActions.onSetTraversalMode(mode); // update UI
|
|
||||||
},
|
|
||||||
}}>
|
|
||||||
<Tooltip title={isConnected ? 'Debugger Mode' : 'App disconnected'}>
|
|
||||||
<Button disabled={!isConnected} shape="circle">
|
|
||||||
<AppstoreOutlined />
|
|
||||||
</Button>
|
|
||||||
</Tooltip>
|
|
||||||
</Dropdown>
|
|
||||||
) : null}
|
|
||||||
<Input
|
<Input
|
||||||
value={searchTerm}
|
value={searchTerm}
|
||||||
onChange={(e) => {
|
onChange={(e) => {
|
||||||
@@ -111,6 +77,33 @@ export const TreeControls: React.FC = () => {
|
|||||||
{isPaused ? <PlayCircleOutlined /> : <PauseCircleOutlined />}
|
{isPaused ? <PlayCircleOutlined /> : <PauseCircleOutlined />}
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
}></Button>
|
}></Button>
|
||||||
|
{supportedTraversalModes.length > 1 &&
|
||||||
|
supportedTraversalModes.includes('accessibility-hierarchy') && (
|
||||||
|
<Tooltip title="Accessibility mode">
|
||||||
|
<Button
|
||||||
|
disabled={!isConnected}
|
||||||
|
shape="circle"
|
||||||
|
onClick={() => {
|
||||||
|
if (currentTraversalMode === 'accessibility-hierarchy') {
|
||||||
|
instance.uiActions.onSetTraversalMode('view-hierarchy');
|
||||||
|
} else {
|
||||||
|
instance.uiActions.onSetTraversalMode(
|
||||||
|
'accessibility-hierarchy',
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}}>
|
||||||
|
<Glyph
|
||||||
|
name={'accessibility'}
|
||||||
|
size={16}
|
||||||
|
color={
|
||||||
|
currentTraversalMode === 'accessibility-hierarchy'
|
||||||
|
? theme.primaryColor
|
||||||
|
: theme.textColorPrimary
|
||||||
|
}
|
||||||
|
/>
|
||||||
|
</Button>
|
||||||
|
</Tooltip>
|
||||||
|
)}
|
||||||
{frameworkEventMonitoring.size > 0 && (
|
{frameworkEventMonitoring.size > 0 && (
|
||||||
<>
|
<>
|
||||||
<Badge
|
<Badge
|
||||||
|
|||||||
Reference in New Issue
Block a user