|
1 | 1 | import React from 'react'
|
2 |
| -import type { FlexAlignment, FlexJustifyContent } from 'utopia-api/core' |
3 | 2 | import { FlexWrap } from 'utopia-api/core'
|
4 | 3 | import type { ControlStatus } from '../../../common/control-status'
|
5 | 4 | import type { ControlStyles } from '../../../common/control-styles'
|
6 | 5 | import { InspectorContextMenuWrapper } from '../../../../context-menu-wrapper'
|
7 | 6 | import type { OptionChainOption } from '../../../controls/option-chain-control'
|
8 |
| -import { OptionChainControl } from '../../../controls/option-chain-control' |
9 |
| -import { |
10 |
| - InspectorPropsContext, |
11 |
| - stylePropPathMappingFn, |
12 |
| - useInspectorLayoutInfo, |
13 |
| -} from '../../../common/property-path-hooks' |
| 7 | +import { useInspectorLayoutInfo } from '../../../common/property-path-hooks' |
14 | 8 | import type { SelectOption } from '../../../controls/select-control'
|
15 | 9 | import type { OptionsType } from 'react-select'
|
16 | 10 | import { unsetPropertyMenuItem } from '../../../common/context-menu-items'
|
17 | 11 | import { UIGridRow } from '../../../widgets/ui-grid-row'
|
18 |
| -import { PropertyLabel } from '../../../widgets/property-label' |
19 | 12 | import {
|
20 | 13 | PopupList,
|
21 | 14 | useWrappedEmptyOrUnknownOnSubmitValue,
|
22 | 15 | NumberInput,
|
23 | 16 | Icons,
|
24 | 17 | } from '../../../../../uuiui'
|
25 |
| -import { useContextSelector } from 'use-context-selector' |
26 | 18 | import type { FlexDirection } from '../../../common/css-utils'
|
27 | 19 | import { when } from '../../../../../utils/react-conditionals'
|
28 | 20 | import { Substores, useEditorState } from '../../../../editor/store/store-hook'
|
@@ -79,86 +71,6 @@ export interface FlexFieldControlProps<T> {
|
79 | 71 | onUnset: () => void
|
80 | 72 | }
|
81 | 73 |
|
82 |
| -interface FlexDirectionControlProps extends FlexFieldControlProps<FlexDirection> { |
83 |
| - flexWrap: FlexWrap |
84 |
| -} |
85 |
| - |
86 |
| -export const FlexDirectionControl = React.memo((props: FlexDirectionControlProps) => { |
87 |
| - return ( |
88 |
| - <InspectorContextMenuWrapper |
89 |
| - id={`flexDirection-context-menu`} |
90 |
| - items={[unsetPropertyMenuItem('Flex Direction', props.onUnset)]} |
91 |
| - data={{}} |
92 |
| - style={{ |
93 |
| - display: 'flex', |
94 |
| - flexDirection: 'column', |
95 |
| - }} |
96 |
| - > |
97 |
| - <OptionChainControl |
98 |
| - id='flex.container.flexDirection' |
99 |
| - key='flex.container.flexDirection' |
100 |
| - testId='flex.container.flexDirection' |
101 |
| - value={props.value} |
102 |
| - DEPRECATED_controlOptions={{ |
103 |
| - labelBelow: 'Direction', |
104 |
| - }} |
105 |
| - controlStatus={props.controlStatus} |
106 |
| - controlStyles={props.controlStyles} |
107 |
| - options={flexDirectionOptions(props.flexWrap)} |
108 |
| - onSubmitValue={props.onSubmitValue} |
109 |
| - /> |
110 |
| - </InspectorContextMenuWrapper> |
111 |
| - ) |
112 |
| -}) |
113 |
| - |
114 |
| -interface FlexAlignItemsControlProps extends FlexFieldControlProps<FlexAlignment> { |
115 |
| - alignDirection: uglyLabel |
116 |
| - alignItemsFlexStart: uglyLabel |
117 |
| - alignItemsFlexEnd: uglyLabel |
118 |
| -} |
119 |
| - |
120 |
| -export const FlexAlignItemsControl = React.memo((props: FlexAlignItemsControlProps) => { |
121 |
| - const targetPath = useContextSelector(InspectorPropsContext, (contextData) => { |
122 |
| - return contextData.targetPath |
123 |
| - }) |
124 |
| - const alignItemsProp = React.useMemo(() => { |
125 |
| - return [stylePropPathMappingFn('alignItems', targetPath)] |
126 |
| - }, [targetPath]) |
127 |
| - return ( |
128 |
| - <InspectorContextMenuWrapper |
129 |
| - id={`alignItems-context-menu`} |
130 |
| - items={[unsetPropertyMenuItem('Align Items', props.onUnset)]} |
131 |
| - data={{}} |
132 |
| - > |
133 |
| - <UIGridRow padded={true} variant='<---1fr--->|------172px-------|'> |
134 |
| - <PropertyLabel target={alignItemsProp}>Align</PropertyLabel> |
135 |
| - <div |
136 |
| - style={{ |
137 |
| - textAlign: 'center', |
138 |
| - display: 'flex', |
139 |
| - flexDirection: 'row', |
140 |
| - }} |
141 |
| - > |
142 |
| - <OptionChainControl |
143 |
| - id='flex.container.alignItems' |
144 |
| - key='flex.container.alignItems' |
145 |
| - testId='flex.container.alignItems' |
146 |
| - value={props.value} |
147 |
| - controlStatus={props.controlStatus} |
148 |
| - controlStyles={props.controlStyles} |
149 |
| - options={alignItemsOptions( |
150 |
| - props.alignDirection, |
151 |
| - props.alignItemsFlexStart, |
152 |
| - props.alignItemsFlexEnd, |
153 |
| - )} |
154 |
| - onSubmitValue={props.onSubmitValue} |
155 |
| - /> |
156 |
| - </div> |
157 |
| - </UIGridRow> |
158 |
| - </InspectorContextMenuWrapper> |
159 |
| - ) |
160 |
| -}) |
161 |
| - |
162 | 74 | interface FlexWrapControlProps extends FlexFieldControlProps<FlexWrap> {}
|
163 | 75 |
|
164 | 76 | const FlexWrapOptions: OptionsType<SelectOption> = [
|
@@ -216,44 +128,6 @@ export const FlexWrapControl = React.memo((props: FlexWrapControlProps) => {
|
216 | 128 | )
|
217 | 129 | })
|
218 | 130 |
|
219 |
| -interface FlexJustifyContentControlProps extends FlexFieldControlProps<FlexJustifyContent> { |
220 |
| - flexDirection: FlexDirection |
221 |
| - justifyFlexStart: uglyLabel |
222 |
| - justifyFlexEnd: uglyLabel |
223 |
| -} |
224 |
| - |
225 |
| -export const FlexJustifyContentControl = React.memo((props: FlexJustifyContentControlProps) => { |
226 |
| - return ( |
227 |
| - <InspectorContextMenuWrapper |
228 |
| - id={`justifyContent-context-menu`} |
229 |
| - items={[unsetPropertyMenuItem('Justify Content', props.onUnset)]} |
230 |
| - data={{}} |
231 |
| - style={{ |
232 |
| - display: 'flex', |
233 |
| - flexDirection: 'column', |
234 |
| - }} |
235 |
| - > |
236 |
| - <OptionChainControl |
237 |
| - id='flex.container.justifyContent' |
238 |
| - key='flex.container.justifyContent' |
239 |
| - testId='flex.container.justifyContent' |
240 |
| - value={props.value} |
241 |
| - DEPRECATED_controlOptions={{ |
242 |
| - labelBelow: 'Justify', |
243 |
| - }} |
244 |
| - options={justifyContentOptions( |
245 |
| - props.flexDirection, |
246 |
| - props.justifyFlexStart, |
247 |
| - props.justifyFlexEnd, |
248 |
| - )} |
249 |
| - onSubmitValue={props.onSubmitValue} |
250 |
| - controlStatus={props.controlStatus} |
251 |
| - controlStyles={props.controlStyles} |
252 |
| - /> |
253 |
| - </InspectorContextMenuWrapper> |
254 |
| - ) |
255 |
| -}) |
256 |
| - |
257 | 131 | const flexGapControlsForHoverAndFocused: {
|
258 | 132 | hovered: Array<CanvasControlWithProps<SubduedFlexGapControlProps>>
|
259 | 133 | focused: Array<CanvasControlWithProps<SubduedFlexGapControlProps>>
|
@@ -350,69 +224,6 @@ export const FlexGapControl = React.memo(() => {
|
350 | 224 | )
|
351 | 225 | })
|
352 | 226 |
|
353 |
| -const justifyContentOptions = ( |
354 |
| - alignDirection: FlexDirection, |
355 |
| - justifyFlexStart: uglyLabel, |
356 |
| - justifyFlexEnd: uglyLabel, |
357 |
| -) => |
358 |
| - [ |
359 |
| - { |
360 |
| - value: 'flex-start', |
361 |
| - tooltip: PrettyLabel[justifyFlexStart], |
362 |
| - icon: { |
363 |
| - category: `layout/flex`, |
364 |
| - type: `justifyContent-${alignDirection}-${justifyFlexStart}`, |
365 |
| - color: 'secondary', |
366 |
| - width: 16, |
367 |
| - height: 16, |
368 |
| - }, |
369 |
| - }, |
370 |
| - { |
371 |
| - value: 'center', |
372 |
| - tooltip: 'Center', |
373 |
| - icon: { |
374 |
| - category: `layout/flex`, |
375 |
| - type: `justifyContent-${alignDirection}-center`, |
376 |
| - color: 'secondary', |
377 |
| - width: 16, |
378 |
| - height: 16, |
379 |
| - }, |
380 |
| - }, |
381 |
| - { |
382 |
| - value: 'flex-end', |
383 |
| - tooltip: PrettyLabel[justifyFlexEnd], |
384 |
| - icon: { |
385 |
| - category: `layout/flex`, |
386 |
| - type: `justifyContent-${alignDirection}-${justifyFlexEnd}`, |
387 |
| - color: 'secondary', |
388 |
| - width: 16, |
389 |
| - height: 16, |
390 |
| - }, |
391 |
| - }, |
392 |
| - { |
393 |
| - value: 'space-between', |
394 |
| - tooltip: 'Space Between', |
395 |
| - icon: { |
396 |
| - category: `layout/flex`, |
397 |
| - type: `justifyContent-${alignDirection}-spaceBetween`, |
398 |
| - color: 'secondary', |
399 |
| - width: 16, |
400 |
| - height: 16, |
401 |
| - }, |
402 |
| - }, |
403 |
| - { |
404 |
| - value: 'space-around', |
405 |
| - tooltip: 'Space Around', |
406 |
| - icon: { |
407 |
| - category: `layout/flex`, |
408 |
| - type: `justifyContent-${alignDirection}-spaceAround`, |
409 |
| - color: 'secondary', |
410 |
| - width: 16, |
411 |
| - height: 16, |
412 |
| - }, |
413 |
| - }, |
414 |
| - ] as Array<OptionChainOption<string | number>> |
415 |
| - |
416 | 227 | export const alignItemsOptions = (
|
417 | 228 | alignDirection: string,
|
418 | 229 | alignItemsFlexStart: uglyLabel,
|
|
0 commit comments