Skip to content

Commit

Permalink
feat: add batch tag add / remove actions, minor dialog cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
robinpyon committed Feb 11, 2021
1 parent 0e52a4c commit 5e4170d
Show file tree
Hide file tree
Showing 29 changed files with 1,088 additions and 401 deletions.
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@
"groq": "2.0.9",
"immer": "8.0.1",
"is-hotkey": "0.2.0",
"nanoid": "3.1.20",
"pluralize": "8.0.0",
"react-file-icon": "1.0.0",
"react-hook-form": "6.14.0",
Expand Down
2 changes: 1 addition & 1 deletion src/components/Card/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ const Card = (props: Props) => {
}

// Callbacks
const handleAssetClick = (e: MouseEvent) => {
const handleAssetClick = (e: MouseEvent<HTMLDivElement>) => {
e.stopPropagation()

if (currentDocument) {
Expand Down
8 changes: 6 additions & 2 deletions src/components/Controls/index.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import {hues} from '@sanity/color'
import {SplitVerticalIcon} from '@sanity/icons'
import {Box, Button, Flex, Inline} from '@sanity/ui'
import React, {FC} from 'react'
import {useDispatch} from 'react-redux'
Expand All @@ -12,6 +11,7 @@ import OrderSelect from '../OrderSelect'
import Progress from '../Progress'
import SearchFacets from '../SearchFacets'
import SearchFacetsControl from '../SearchFacetsControl'
import TagIcon from '../TagIcon'
import TextInputSearch from '../TextInputSearch'

const Controls: FC = () => {
Expand Down Expand Up @@ -111,7 +111,11 @@ const Controls: FC = () => {
<Box display={['none', 'none', 'block']} marginLeft={2}>
<Button
fontSize={1}
icon={SplitVerticalIcon}
icon={
<Box style={{transform: 'scale(0.75)'}}>
<TagIcon />
</Box>
}
onClick={toggleTagsPanelToggle}
mode={tagsPanelVisible ? 'default' : 'ghost'}
text={tagsPanelVisible ? 'Tags' : ''}
Expand Down
9 changes: 4 additions & 5 deletions src/components/DialogAssetEdit/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import * as yup from 'yup'

import useTypedSelector from '../../hooks/useTypedSelector'
import {assetsUpdate, selectAssetById} from '../../modules/assets'
import {dialogRemove, dialogShowDeleteConfirm} from '../../modules/dialog'
import {dialogRemove, dialogShowConfirmDeleteAsset} from '../../modules/dialog'
import {selectTags, selectTagSelectOptions, tagsCreate} from '../../modules/tags'
import getTagSelectOptions from '../../utils/getTagSelectOptions'
import imageDprUrl from '../../utils/imageDprUrl'
Expand Down Expand Up @@ -110,10 +110,9 @@ const DialogAssetEdit: FC<Props> = (props: Props) => {
}

dispatch(
dialogShowDeleteConfirm({
closeDialogId: assetItem?.asset._id,
documentId: assetItem?.asset._id,
documentType: 'asset'
dialogShowConfirmDeleteAsset({
asset: assetItem?.asset,
closeDialogId: assetItem?.asset._id
})
)
}
Expand Down
85 changes: 85 additions & 0 deletions src/components/DialogConfirm/index.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
import {WarningOutlineIcon} from '@sanity/icons'
import {Box, Button, Dialog, Flex, Stack, Text} from '@sanity/ui'
import {DialogConfirm} from '@types'
import React, {FC, ReactNode} from 'react'
import {useDispatch} from 'react-redux'

import {dialogRemove} from '../../modules/dialog'

type Props = {
children?: ReactNode
dialog: DialogConfirm
}

const DialogConfirm: FC<Props> = (props: Props) => {
const {children, dialog} = props

// Redux
const dispatch = useDispatch()

// Callbacks
const handleClose = () => {
dispatch(dialogRemove(dialog?.id))
}

const handleConfirm = () => {
// Close target dialog, if provided
if (dialog?.closeDialogId) {
dispatch(dialogRemove(dialog?.closeDialogId))
}

if (dialog?.confirmCallbackAction) {
dispatch(dialog.confirmCallbackAction)
}

// Close self
handleClose()
}

const Footer = () => (
<Box padding={3}>
<Flex justify="space-between">
<Button fontSize={1} mode="bleed" onClick={handleClose} text="Cancel" />
<Button
fontSize={1}
onClick={handleConfirm}
text={dialog?.confirmText}
tone={dialog?.tone}
/>
</Flex>
</Box>
)

const Header = () => (
<Flex align="center">
<Box paddingX={1}>
<WarningOutlineIcon />
</Box>
<Box marginLeft={2}>{dialog?.title}</Box>
</Flex>
)

return (
<Dialog
footer={<Footer />}
header={<Header />}
id="confirm"
onClose={handleClose}
scheme="dark"
width={1}
>
<Box paddingX={4} paddingY={4}>
<Stack space={3}>
{dialog?.description && <Text size={1}>{dialog.description}</Text>}
<Text muted size={1}>
<em>This operation cannot be reversed. Are you sure you want to continue?</em>
</Text>
</Stack>
</Box>

{children}
</Dialog>
)
}

export default DialogConfirm
122 changes: 0 additions & 122 deletions src/components/DialogDeleteConfirm/index.tsx

This file was deleted.

7 changes: 3 additions & 4 deletions src/components/DialogTagEdit/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import {useDispatch} from 'react-redux'
import * as yup from 'yup'

import useTypedSelector from '../../hooks/useTypedSelector'
import {dialogRemove, dialogShowDeleteConfirm} from '../../modules/dialog'
import {dialogRemove, dialogShowConfirmDeleteTag} from '../../modules/dialog'
import {selectTagById, tagsUpdate} from '../../modules/tags'
import sanitizeFormData from '../../utils/sanitizeFormData'
import FormFieldInputText from '../FormFieldInputText'
Expand Down Expand Up @@ -84,10 +84,9 @@ const DialogTagEdit: FC<Props> = (props: Props) => {
}

dispatch(
dialogShowDeleteConfirm({
dialogShowConfirmDeleteTag({
closeDialogId: tagItem?.tag?._id,
documentId: tagItem?.tag?._id,
documentType: 'tag'
tag: tagItem?.tag
})
)
}
Expand Down
8 changes: 4 additions & 4 deletions src/components/Dialogs/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import {Dialog} from '@types'
import React, {FC} from 'react'

import useTypedSelector from '../../hooks/useTypedSelector'
import DialogDeleteConfirm from '../DialogDeleteConfirm'
import DialogConfirm from '../DialogConfirm'
import DialogAssetEdit from '../DialogAssetEdit'
import DialogSearchFacets from '../DialogSearchFacets'
import DialogTagCreate from '../DialogTagCreate'
Expand All @@ -29,11 +29,11 @@ const Dialogs: FC = () => {
)
}

if (dialog.type === 'deleteConfirm') {
if (dialog.type === 'confirm') {
return (
<DialogDeleteConfirm dialog={dialog} key={index}>
<DialogConfirm dialog={dialog} key={index}>
{childDialogs}
</DialogDeleteConfirm>
</DialogConfirm>
)
}

Expand Down
Loading

0 comments on commit 5e4170d

Please sign in to comment.