Skip to content
Snippets Groups Projects
Commit 4ba0b1ef authored by brunoravera's avatar brunoravera
Browse files

delete pattern

parent 5d181226
No related branches found
No related tags found
No related merge requests found
...@@ -23,8 +23,7 @@ import { ...@@ -23,8 +23,7 @@ import {
import { useFormik } from 'formik' import { useFormik } from 'formik'
import { useQueryClient } from 'react-query' import { useQueryClient } from 'react-query'
import { GetPatternsQuery } from '../query-builder' import { CreatePatternMutation, GetPatternsQuery } from '../query-builder'
import { CreatePatternMutation } from '../query-builder/create-pattern-mutation'
import { CreatePatternSchema, createPatternSchema } from './schema' import { CreatePatternSchema, createPatternSchema } from './schema'
......
...@@ -26,6 +26,7 @@ import { Pattern } from 'src/models' ...@@ -26,6 +26,7 @@ import { Pattern } from 'src/models'
import { AddPatternButton } from './add-pattern' import { AddPatternButton } from './add-pattern'
import { GetPatternsQuery } from './query-builder' import { GetPatternsQuery } from './query-builder'
import { RemovePatternIconButton } from './remove-pattern'
const tableHeaders = ['Titulo', 'Descripcion', '#Implementaciones', ''] const tableHeaders = ['Titulo', 'Descripcion', '#Implementaciones', '']
...@@ -123,11 +124,7 @@ const ActionsRow: React.FC<ActionsRowProps> = ({ pattern }) => { ...@@ -123,11 +124,7 @@ const ActionsRow: React.FC<ActionsRowProps> = ({ pattern }) => {
variant="unstyled" variant="unstyled"
icon={<Icon as={FaEdit} />} icon={<Icon as={FaEdit} />}
/> />
<IconButton <RemovePatternIconButton patternId={pattern.id} />
aria-label="delete pattern"
variant="unstyled"
icon={<Icon as={FaTrash} />}
/>
</HStack> </HStack>
) )
} }
import axiosService from 'src/services/axios-service'
import { useMutation as useRQMutation, UseMutationOptions } from 'react-query'
import { AxiosError } from 'axios'
export namespace DeletePatternMutation {
export type Params = { id: string }
export type Response = {}
export const key = ['delete', 'pattern']
export const mutationFn = (params: Params) =>
axiosService
.delete<Response>(`/pattern/${params.id}`)
.then((res) => res.data)
export const useMutation = (
options: UseMutationOptions<Response, AxiosError, Params> = {}
) => {
return useRQMutation(mutationFn, { ...options, mutationKey: key })
}
}
export * from './get-patterns-query' export * from './get-patterns-query'
export * from './create-pattern-mutation'
export * from './delete-pattern-mutation'
export * from './remove-pattern-icon-button'
import React from 'react'
import { IconButtonProps, IconButton, Icon } from '@chakra-ui/react'
import { FaTrash } from 'react-icons/fa'
import { DeletePatternMutation, GetPatternsQuery } from '../query-builder'
import { useQueryClient } from 'react-query'
export type RemovePatternIconButtonProps = {
patternId: string
} & Partial<IconButtonProps>
export const RemovePatternIconButton: React.FC<
RemovePatternIconButtonProps
> = ({ patternId, ...props }) => {
const queryClient = useQueryClient()
const deletePatternMutation = DeletePatternMutation.useMutation({
onSuccess: () => {
queryClient.invalidateQueries(GetPatternsQuery.getKey({}))
},
})
const handleDeletePattern = () => {
deletePatternMutation.mutate({ id: patternId })
}
return (
<IconButton
aria-label="view pattern"
variant="unstyled"
icon={<Icon as={FaTrash} />}
{...props}
onClick={handleDeletePattern}
/>
)
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment