2021-11-03 16:46:33 +00:00
|
|
|
import * as React from 'react'
|
2021-11-19 10:19:06 +00:00
|
|
|
import { Tooltip } from '~components/Primitives/Tooltip/Tooltip'
|
2021-11-03 16:46:33 +00:00
|
|
|
import * as DropdownMenu from '@radix-ui/react-dropdown-menu'
|
2021-11-16 16:01:29 +00:00
|
|
|
import { useTldrawApp } from '~hooks'
|
2021-11-06 11:16:30 +00:00
|
|
|
import { styled } from '~styles'
|
2021-11-16 16:01:29 +00:00
|
|
|
import { AlignType, TDSnapshot, DistributeType, StretchType } from '~types'
|
2021-11-03 16:46:33 +00:00
|
|
|
import {
|
|
|
|
ArrowDownIcon,
|
|
|
|
ArrowUpIcon,
|
|
|
|
AspectRatioIcon,
|
|
|
|
CopyIcon,
|
|
|
|
DotsHorizontalIcon,
|
|
|
|
GroupIcon,
|
|
|
|
LockClosedIcon,
|
|
|
|
LockOpen1Icon,
|
|
|
|
PinBottomIcon,
|
|
|
|
PinTopIcon,
|
|
|
|
RotateCounterClockwiseIcon,
|
|
|
|
AlignBottomIcon,
|
|
|
|
AlignCenterHorizontallyIcon,
|
|
|
|
AlignCenterVerticallyIcon,
|
|
|
|
AlignLeftIcon,
|
|
|
|
AlignRightIcon,
|
|
|
|
AlignTopIcon,
|
|
|
|
SpaceEvenlyHorizontallyIcon,
|
|
|
|
SpaceEvenlyVerticallyIcon,
|
|
|
|
StretchHorizontallyIcon,
|
|
|
|
StretchVerticallyIcon,
|
2021-11-16 21:21:02 +00:00
|
|
|
BoxIcon,
|
2021-11-20 10:48:18 +00:00
|
|
|
AngleIcon,
|
2021-11-03 16:46:33 +00:00
|
|
|
} from '@radix-ui/react-icons'
|
2021-11-19 10:19:06 +00:00
|
|
|
import { DMContent } from '~components/Primitives/DropdownMenu'
|
|
|
|
import { Divider } from '~components/Primitives/Divider'
|
|
|
|
import { ToolButton } from '~components/Primitives/ToolButton'
|
2022-06-09 14:33:35 +00:00
|
|
|
import { useIntl } from 'react-intl'
|
2021-11-03 16:46:33 +00:00
|
|
|
|
2021-11-16 16:01:29 +00:00
|
|
|
const selectedShapesCountSelector = (s: TDSnapshot) =>
|
2021-11-03 16:46:33 +00:00
|
|
|
s.document.pageStates[s.appState.currentPageId].selectedIds.length
|
|
|
|
|
2021-11-16 16:01:29 +00:00
|
|
|
const isAllLockedSelector = (s: TDSnapshot) => {
|
2021-11-03 16:46:33 +00:00
|
|
|
const page = s.document.pages[s.appState.currentPageId]
|
|
|
|
const { selectedIds } = s.document.pageStates[s.appState.currentPageId]
|
|
|
|
return selectedIds.every((id) => page.shapes[id].isLocked)
|
|
|
|
}
|
|
|
|
|
2021-11-16 16:01:29 +00:00
|
|
|
const isAllAspectLockedSelector = (s: TDSnapshot) => {
|
2021-11-03 16:46:33 +00:00
|
|
|
const page = s.document.pages[s.appState.currentPageId]
|
|
|
|
const { selectedIds } = s.document.pageStates[s.appState.currentPageId]
|
|
|
|
return selectedIds.every((id) => page.shapes[id].isAspectRatioLocked)
|
|
|
|
}
|
|
|
|
|
2021-11-16 16:01:29 +00:00
|
|
|
const isAllGroupedSelector = (s: TDSnapshot) => {
|
2021-11-03 16:46:33 +00:00
|
|
|
const page = s.document.pages[s.appState.currentPageId]
|
|
|
|
const selectedShapes = s.document.pageStates[s.appState.currentPageId].selectedIds.map(
|
|
|
|
(id) => page.shapes[id]
|
|
|
|
)
|
|
|
|
|
|
|
|
return selectedShapes.every(
|
|
|
|
(shape) =>
|
|
|
|
shape.children !== undefined ||
|
|
|
|
(shape.parentId === selectedShapes[0].parentId &&
|
|
|
|
selectedShapes[0].parentId !== s.appState.currentPageId)
|
|
|
|
)
|
|
|
|
}
|
|
|
|
|
2021-11-17 11:06:56 +00:00
|
|
|
const hasSelectionSelector = (s: TDSnapshot) => {
|
2021-11-03 16:46:33 +00:00
|
|
|
const { selectedIds } = s.document.pageStates[s.appState.currentPageId]
|
|
|
|
return selectedIds.length > 0
|
|
|
|
}
|
|
|
|
|
2021-11-17 11:06:56 +00:00
|
|
|
const hasMultipleSelectionSelector = (s: TDSnapshot) => {
|
2021-11-03 16:46:33 +00:00
|
|
|
const { selectedIds } = s.document.pageStates[s.appState.currentPageId]
|
|
|
|
return selectedIds.length > 1
|
|
|
|
}
|
|
|
|
|
2022-05-14 13:15:55 +00:00
|
|
|
export function ActionButton() {
|
2021-11-16 16:01:29 +00:00
|
|
|
const app = useTldrawApp()
|
2022-06-09 14:33:35 +00:00
|
|
|
const intl = useIntl()
|
|
|
|
|
|
|
|
const isFrenchLang = navigator.language === 'fr'
|
2021-11-03 16:46:33 +00:00
|
|
|
|
2021-11-16 16:01:29 +00:00
|
|
|
const isAllLocked = app.useStore(isAllLockedSelector)
|
2021-11-03 16:46:33 +00:00
|
|
|
|
2021-11-16 16:01:29 +00:00
|
|
|
const isAllAspectLocked = app.useStore(isAllAspectLockedSelector)
|
2021-11-03 16:46:33 +00:00
|
|
|
|
2021-11-16 16:01:29 +00:00
|
|
|
const isAllGrouped = app.useStore(isAllGroupedSelector)
|
2021-11-03 16:46:33 +00:00
|
|
|
|
2021-11-17 11:06:56 +00:00
|
|
|
const hasSelection = app.useStore(hasSelectionSelector)
|
2021-11-03 16:46:33 +00:00
|
|
|
|
2021-11-17 11:06:56 +00:00
|
|
|
const hasMultipleSelection = app.useStore(hasMultipleSelectionSelector)
|
2021-11-03 16:46:33 +00:00
|
|
|
|
2021-11-16 21:21:02 +00:00
|
|
|
const selectedShapesCount = app.useStore(selectedShapesCountSelector)
|
|
|
|
|
|
|
|
const hasTwoOrMore = selectedShapesCount > 1
|
|
|
|
|
|
|
|
const hasThreeOrMore = selectedShapesCount > 2
|
|
|
|
|
2021-11-03 16:46:33 +00:00
|
|
|
const handleRotate = React.useCallback(() => {
|
2021-11-16 16:01:29 +00:00
|
|
|
app.rotate()
|
|
|
|
}, [app])
|
2021-11-03 16:46:33 +00:00
|
|
|
|
|
|
|
const handleDuplicate = React.useCallback(() => {
|
2021-11-16 16:01:29 +00:00
|
|
|
app.duplicate()
|
|
|
|
}, [app])
|
2021-11-03 16:46:33 +00:00
|
|
|
|
|
|
|
const handleToggleLocked = React.useCallback(() => {
|
2021-11-16 16:01:29 +00:00
|
|
|
app.toggleLocked()
|
|
|
|
}, [app])
|
2021-11-03 16:46:33 +00:00
|
|
|
|
|
|
|
const handleToggleAspectRatio = React.useCallback(() => {
|
2021-11-16 16:01:29 +00:00
|
|
|
app.toggleAspectRatioLocked()
|
|
|
|
}, [app])
|
2021-11-03 16:46:33 +00:00
|
|
|
|
|
|
|
const handleGroup = React.useCallback(() => {
|
2021-11-16 16:01:29 +00:00
|
|
|
app.group()
|
|
|
|
}, [app])
|
2021-11-03 16:46:33 +00:00
|
|
|
|
|
|
|
const handleMoveToBack = React.useCallback(() => {
|
2021-11-16 16:01:29 +00:00
|
|
|
app.moveToBack()
|
|
|
|
}, [app])
|
2021-11-03 16:46:33 +00:00
|
|
|
|
|
|
|
const handleMoveBackward = React.useCallback(() => {
|
2021-11-16 16:01:29 +00:00
|
|
|
app.moveBackward()
|
|
|
|
}, [app])
|
2021-11-03 16:46:33 +00:00
|
|
|
|
|
|
|
const handleMoveForward = React.useCallback(() => {
|
2021-11-16 16:01:29 +00:00
|
|
|
app.moveForward()
|
|
|
|
}, [app])
|
2021-11-03 16:46:33 +00:00
|
|
|
|
|
|
|
const handleMoveToFront = React.useCallback(() => {
|
2021-11-16 16:01:29 +00:00
|
|
|
app.moveToFront()
|
|
|
|
}, [app])
|
2021-11-03 16:46:33 +00:00
|
|
|
|
2021-11-20 10:48:18 +00:00
|
|
|
const handleResetAngle = React.useCallback(() => {
|
|
|
|
app.setShapeProps({ rotation: 0 })
|
2021-11-16 16:01:29 +00:00
|
|
|
}, [app])
|
2021-11-03 16:46:33 +00:00
|
|
|
|
|
|
|
const alignTop = React.useCallback(() => {
|
2021-11-16 16:01:29 +00:00
|
|
|
app.align(AlignType.Top)
|
|
|
|
}, [app])
|
2021-11-03 16:46:33 +00:00
|
|
|
|
|
|
|
const alignCenterVertical = React.useCallback(() => {
|
2021-11-16 16:01:29 +00:00
|
|
|
app.align(AlignType.CenterVertical)
|
|
|
|
}, [app])
|
2021-11-03 16:46:33 +00:00
|
|
|
|
|
|
|
const alignBottom = React.useCallback(() => {
|
2021-11-16 16:01:29 +00:00
|
|
|
app.align(AlignType.Bottom)
|
|
|
|
}, [app])
|
2021-11-03 16:46:33 +00:00
|
|
|
|
|
|
|
const stretchVertically = React.useCallback(() => {
|
2021-11-16 16:01:29 +00:00
|
|
|
app.stretch(StretchType.Vertical)
|
|
|
|
}, [app])
|
2021-11-03 16:46:33 +00:00
|
|
|
|
|
|
|
const distributeVertically = React.useCallback(() => {
|
2021-11-16 16:01:29 +00:00
|
|
|
app.distribute(DistributeType.Vertical)
|
|
|
|
}, [app])
|
2021-11-03 16:46:33 +00:00
|
|
|
|
|
|
|
const alignLeft = React.useCallback(() => {
|
2021-11-16 16:01:29 +00:00
|
|
|
app.align(AlignType.Left)
|
|
|
|
}, [app])
|
2021-11-03 16:46:33 +00:00
|
|
|
|
|
|
|
const alignCenterHorizontal = React.useCallback(() => {
|
2021-11-16 16:01:29 +00:00
|
|
|
app.align(AlignType.CenterHorizontal)
|
|
|
|
}, [app])
|
2021-11-03 16:46:33 +00:00
|
|
|
|
|
|
|
const alignRight = React.useCallback(() => {
|
2021-11-16 16:01:29 +00:00
|
|
|
app.align(AlignType.Right)
|
|
|
|
}, [app])
|
2021-11-03 16:46:33 +00:00
|
|
|
|
|
|
|
const stretchHorizontally = React.useCallback(() => {
|
2021-11-16 16:01:29 +00:00
|
|
|
app.stretch(StretchType.Horizontal)
|
|
|
|
}, [app])
|
2021-11-03 16:46:33 +00:00
|
|
|
|
|
|
|
const distributeHorizontally = React.useCallback(() => {
|
2021-11-16 16:01:29 +00:00
|
|
|
app.distribute(DistributeType.Horizontal)
|
|
|
|
}, [app])
|
2021-11-03 16:46:33 +00:00
|
|
|
|
2021-12-06 18:23:53 +00:00
|
|
|
const handleMenuOpenChange = React.useCallback(
|
|
|
|
(open: boolean) => {
|
|
|
|
app.setMenuOpen(open)
|
|
|
|
},
|
|
|
|
[app]
|
|
|
|
)
|
|
|
|
|
2021-11-03 16:46:33 +00:00
|
|
|
return (
|
2021-12-06 18:23:53 +00:00
|
|
|
<DropdownMenu.Root dir="ltr" onOpenChange={handleMenuOpenChange}>
|
2022-01-21 11:44:18 +00:00
|
|
|
<DropdownMenu.Trigger dir="ltr" asChild id="TD-Tools-Dots">
|
2021-11-17 11:06:56 +00:00
|
|
|
<ToolButton variant="circle">
|
2021-11-16 21:21:02 +00:00
|
|
|
<DotsHorizontalIcon />
|
2021-11-03 16:46:33 +00:00
|
|
|
</ToolButton>
|
|
|
|
</DropdownMenu.Trigger>
|
2021-11-16 16:01:29 +00:00
|
|
|
<DMContent sideOffset={16}>
|
2021-11-03 16:46:33 +00:00
|
|
|
<>
|
|
|
|
<ButtonsRow>
|
2021-11-16 16:01:29 +00:00
|
|
|
<ToolButton variant="icon" disabled={!hasSelection} onClick={handleDuplicate}>
|
2022-06-09 14:33:35 +00:00
|
|
|
<Tooltip
|
|
|
|
label={intl.formatMessage({ id: 'duplicate' })}
|
|
|
|
kbd={`#D`}
|
|
|
|
id="TD-Tools-Copy"
|
|
|
|
>
|
2021-11-03 16:46:33 +00:00
|
|
|
<CopyIcon />
|
|
|
|
</Tooltip>
|
2021-11-16 16:01:29 +00:00
|
|
|
</ToolButton>
|
|
|
|
<ToolButton disabled={!hasSelection} onClick={handleRotate}>
|
2022-06-09 14:33:35 +00:00
|
|
|
<Tooltip label={intl.formatMessage({ id: 'rotate' })} id="TD-Tools-Rotate">
|
2021-11-03 16:46:33 +00:00
|
|
|
<RotateCounterClockwiseIcon />
|
|
|
|
</Tooltip>
|
2021-11-16 16:01:29 +00:00
|
|
|
</ToolButton>
|
|
|
|
<ToolButton disabled={!hasSelection} onClick={handleToggleLocked}>
|
2022-06-09 14:33:35 +00:00
|
|
|
<Tooltip
|
|
|
|
label={intl.formatMessage({ id: isAllLocked ? 'unlock' : 'lock' })}
|
|
|
|
kbd={`#L`}
|
|
|
|
id="TD-Tools-Lock"
|
|
|
|
>
|
2021-11-16 21:21:02 +00:00
|
|
|
{isAllLocked ? <LockClosedIcon /> : <LockOpen1Icon />}
|
2021-11-03 16:46:33 +00:00
|
|
|
</Tooltip>
|
2021-11-16 16:01:29 +00:00
|
|
|
</ToolButton>
|
|
|
|
<ToolButton disabled={!hasSelection} onClick={handleToggleAspectRatio}>
|
2022-06-09 14:33:35 +00:00
|
|
|
<Tooltip
|
|
|
|
label={intl.formatMessage({
|
|
|
|
id: isAllAspectLocked ? 'unlock.aspect.ratio' : 'lock.aspect.ratio',
|
|
|
|
})}
|
|
|
|
id="TD-Tools-AspectRatio"
|
|
|
|
>
|
2021-11-16 21:21:02 +00:00
|
|
|
{isAllAspectLocked ? <AspectRatioIcon /> : <BoxIcon />}
|
2021-11-03 16:46:33 +00:00
|
|
|
</Tooltip>
|
2021-11-16 16:01:29 +00:00
|
|
|
</ToolButton>
|
|
|
|
<ToolButton
|
2021-11-11 13:03:13 +00:00
|
|
|
disabled={!hasSelection || (!isAllGrouped && !hasMultipleSelection)}
|
|
|
|
onClick={handleGroup}
|
|
|
|
>
|
2022-06-09 14:33:35 +00:00
|
|
|
<Tooltip label={intl.formatMessage({ id: 'group' })} kbd={`#G`} id="TD-Tools-Group">
|
2021-11-16 21:21:02 +00:00
|
|
|
<GroupIcon />
|
2021-11-03 16:46:33 +00:00
|
|
|
</Tooltip>
|
2021-11-16 16:01:29 +00:00
|
|
|
</ToolButton>
|
2021-11-03 16:46:33 +00:00
|
|
|
</ButtonsRow>
|
|
|
|
<ButtonsRow>
|
2021-11-16 16:01:29 +00:00
|
|
|
<ToolButton disabled={!hasSelection} onClick={handleMoveToBack}>
|
2022-06-09 14:33:35 +00:00
|
|
|
<Tooltip
|
|
|
|
label={intl.formatMessage({ id: 'move.to.back' })}
|
|
|
|
kbd={`#⇧[`}
|
|
|
|
id="TD-Tools-PinBottom"
|
|
|
|
>
|
2021-11-03 16:46:33 +00:00
|
|
|
<PinBottomIcon />
|
|
|
|
</Tooltip>
|
2021-11-16 16:01:29 +00:00
|
|
|
</ToolButton>
|
|
|
|
<ToolButton disabled={!hasSelection} onClick={handleMoveBackward}>
|
2022-06-09 14:33:35 +00:00
|
|
|
<Tooltip
|
|
|
|
label={intl.formatMessage({ id: 'move.backward' })}
|
|
|
|
kbd={`#[`}
|
|
|
|
id="TD-Tools-ArrowDown"
|
|
|
|
>
|
2021-11-03 16:46:33 +00:00
|
|
|
<ArrowDownIcon />
|
|
|
|
</Tooltip>
|
2021-11-16 16:01:29 +00:00
|
|
|
</ToolButton>
|
|
|
|
<ToolButton disabled={!hasSelection} onClick={handleMoveForward}>
|
2022-06-09 14:33:35 +00:00
|
|
|
<Tooltip
|
|
|
|
label={intl.formatMessage({ id: 'move.forward' })}
|
|
|
|
kbd={`#]`}
|
|
|
|
id="TD-Tools-ArrowUp"
|
|
|
|
>
|
2021-11-03 16:46:33 +00:00
|
|
|
<ArrowUpIcon />
|
|
|
|
</Tooltip>
|
2021-11-16 16:01:29 +00:00
|
|
|
</ToolButton>
|
|
|
|
<ToolButton disabled={!hasSelection} onClick={handleMoveToFront}>
|
2022-06-09 14:33:35 +00:00
|
|
|
<Tooltip
|
|
|
|
label={intl.formatMessage({ id: 'move.to.front' })}
|
|
|
|
kbd={`#⇧]`}
|
|
|
|
id="TD-Tools-PinTop"
|
|
|
|
>
|
2021-11-03 16:46:33 +00:00
|
|
|
<PinTopIcon />
|
|
|
|
</Tooltip>
|
2021-11-16 16:01:29 +00:00
|
|
|
</ToolButton>
|
2021-11-20 10:48:18 +00:00
|
|
|
<ToolButton disabled={!hasSelection} onClick={handleResetAngle}>
|
2022-06-09 14:33:35 +00:00
|
|
|
<Tooltip label={intl.formatMessage({ id: 'reset.angle' })} id="TD-Tools-ResetAngle">
|
2021-11-20 10:48:18 +00:00
|
|
|
<AngleIcon />
|
2021-11-03 16:46:33 +00:00
|
|
|
</Tooltip>
|
2021-11-16 16:01:29 +00:00
|
|
|
</ToolButton>
|
2021-11-03 16:46:33 +00:00
|
|
|
</ButtonsRow>
|
|
|
|
<Divider />
|
|
|
|
<ButtonsRow>
|
2022-01-21 11:44:18 +00:00
|
|
|
<ToolButton disabled={!hasTwoOrMore} onClick={alignLeft} id="TD-Tools-AlignLeft">
|
2021-11-03 16:46:33 +00:00
|
|
|
<AlignLeftIcon />
|
2021-11-16 16:01:29 +00:00
|
|
|
</ToolButton>
|
2022-01-21 11:44:18 +00:00
|
|
|
<ToolButton
|
|
|
|
disabled={!hasTwoOrMore}
|
|
|
|
onClick={alignCenterHorizontal}
|
|
|
|
id="TD-Tools-AlignCenterHorizontal"
|
|
|
|
>
|
2021-11-03 16:46:33 +00:00
|
|
|
<AlignCenterHorizontallyIcon />
|
2021-11-16 16:01:29 +00:00
|
|
|
</ToolButton>
|
2022-01-21 11:44:18 +00:00
|
|
|
<ToolButton disabled={!hasTwoOrMore} onClick={alignRight} id="TD-Tools-AlignRight">
|
2021-11-03 16:46:33 +00:00
|
|
|
<AlignRightIcon />
|
2021-11-16 16:01:29 +00:00
|
|
|
</ToolButton>
|
2022-01-21 11:44:18 +00:00
|
|
|
<ToolButton
|
|
|
|
disabled={!hasTwoOrMore}
|
|
|
|
onClick={stretchHorizontally}
|
|
|
|
id="TD-Tools-StretchHorizontal"
|
|
|
|
>
|
2021-11-03 16:46:33 +00:00
|
|
|
<StretchHorizontallyIcon />
|
2021-11-16 16:01:29 +00:00
|
|
|
</ToolButton>
|
2022-01-21 11:44:18 +00:00
|
|
|
<ToolButton
|
|
|
|
disabled={!hasThreeOrMore}
|
|
|
|
onClick={distributeHorizontally}
|
|
|
|
id="TD-Tools-SpaceEvenlyHorizontal"
|
|
|
|
>
|
2021-11-03 16:46:33 +00:00
|
|
|
<SpaceEvenlyHorizontallyIcon />
|
2021-11-16 16:01:29 +00:00
|
|
|
</ToolButton>
|
2021-11-03 16:46:33 +00:00
|
|
|
</ButtonsRow>
|
|
|
|
<ButtonsRow>
|
2022-01-21 11:44:18 +00:00
|
|
|
<ToolButton disabled={!hasTwoOrMore} onClick={alignTop} id="TD-Tools-AlignTop">
|
2021-11-03 16:46:33 +00:00
|
|
|
<AlignTopIcon />
|
2021-11-16 16:01:29 +00:00
|
|
|
</ToolButton>
|
2022-01-21 11:44:18 +00:00
|
|
|
<ToolButton
|
|
|
|
disabled={!hasTwoOrMore}
|
|
|
|
onClick={alignCenterVertical}
|
|
|
|
id="TD-Tools-AlignCenterVertical"
|
|
|
|
>
|
2021-11-03 16:46:33 +00:00
|
|
|
<AlignCenterVerticallyIcon />
|
2021-11-16 16:01:29 +00:00
|
|
|
</ToolButton>
|
2022-01-21 11:44:18 +00:00
|
|
|
<ToolButton disabled={!hasTwoOrMore} onClick={alignBottom} id="TD-Tools-AlignBottom">
|
2021-11-03 16:46:33 +00:00
|
|
|
<AlignBottomIcon />
|
2021-11-16 16:01:29 +00:00
|
|
|
</ToolButton>
|
2022-01-21 11:44:18 +00:00
|
|
|
<ToolButton
|
|
|
|
disabled={!hasTwoOrMore}
|
|
|
|
onClick={stretchVertically}
|
|
|
|
id="TD-Tools-tretchVertical"
|
|
|
|
>
|
2021-11-03 16:46:33 +00:00
|
|
|
<StretchVerticallyIcon />
|
2021-11-16 16:01:29 +00:00
|
|
|
</ToolButton>
|
2022-01-21 11:44:18 +00:00
|
|
|
<ToolButton
|
|
|
|
disabled={!hasThreeOrMore}
|
|
|
|
onClick={distributeVertically}
|
|
|
|
id="TD-Tools-SpaceEvenlyVertical"
|
|
|
|
>
|
2021-11-03 16:46:33 +00:00
|
|
|
<SpaceEvenlyVerticallyIcon />
|
2021-11-16 16:01:29 +00:00
|
|
|
</ToolButton>
|
2021-11-03 16:46:33 +00:00
|
|
|
</ButtonsRow>
|
|
|
|
</>
|
|
|
|
</DMContent>
|
|
|
|
</DropdownMenu.Root>
|
|
|
|
)
|
|
|
|
}
|
|
|
|
|
|
|
|
export const ButtonsRow = styled('div', {
|
|
|
|
position: 'relative',
|
|
|
|
display: 'flex',
|
|
|
|
width: '100%',
|
|
|
|
background: 'none',
|
|
|
|
border: 'none',
|
|
|
|
cursor: 'pointer',
|
|
|
|
outline: 'none',
|
|
|
|
alignItems: 'center',
|
|
|
|
justifyContent: 'flex-start',
|
|
|
|
padding: 0,
|
|
|
|
})
|