1
0
This repository has been archived on 2024-11-10. You can view files and clone it, but cannot push or open issues or pull requests.
Files
arduino-parts-inventory/web/src/components/Part/NewPart/NewPart.tsx

50 lines
1.3 KiB
TypeScript

import type { CreatePartInput } from 'types/graphql'
import { navigate, routes } from '@redwoodjs/router'
import { useMutation } from '@redwoodjs/web'
import { toast } from '@redwoodjs/web/toast'
import PartForm from 'src/components/Part/PartForm'
import ToastNotification from 'src/components/ToastNotification'
const CREATE_PART_MUTATION = gql`
mutation CreatePartMutation($input: CreatePartInput!) {
createPart(input: $input) {
id
}
}
`
const NewPart = () => {
const [createPart, { loading, error }] = useMutation(CREATE_PART_MUTATION, {
onCompleted: () => {
toast.custom((t) => (
<ToastNotification toast={t} type="success" message="Part created" />
))
navigate(routes.parts())
},
onError: (error) => {
toast.custom((t) => (
<ToastNotification toast={t} type="error" message={error.message} />
))
},
})
const onSave = (input: CreatePartInput) => {
createPart({ variables: { input } })
}
return (
<div className="rw-segment">
<header className="rw-segment-header">
<h2 className="rw-heading rw-heading-secondary">New Part</h2>
</header>
<div className="rw-segment-main">
<PartForm onSave={onSave} loading={loading} error={error} />
</div>
</div>
)
}
export default NewPart