- add Artikel, Kauf, Kategorie Model - generate Components - playing with custom components - add Tailwindcss
76 lines
1.6 KiB
JavaScript
76 lines
1.6 KiB
JavaScript
import { navigate, routes } from '@redwoodjs/router'
|
|
|
|
import { useMutation } from '@redwoodjs/web'
|
|
import { toast } from '@redwoodjs/web/toast'
|
|
|
|
import ArtikelForm from 'src/components/Artikel/ArtikelForm'
|
|
|
|
export const QUERY = gql`
|
|
query EditArtikelById($id: Int!) {
|
|
artikel: artikel(id: $id) {
|
|
id
|
|
name
|
|
preis
|
|
kategorie_id
|
|
},
|
|
kategories: kategories {
|
|
id
|
|
name
|
|
}
|
|
}
|
|
`
|
|
const UPDATE_ARTIKEL_MUTATION = gql`
|
|
mutation UpdateArtikelMutation($id: Int!, $input: UpdateArtikelInput!) {
|
|
updateArtikel(id: $id, input: $input) {
|
|
id
|
|
name
|
|
preis
|
|
kategorie_id
|
|
}
|
|
}
|
|
`
|
|
|
|
export const Loading = () => <div>Loading...</div>
|
|
|
|
export const Failure = ({ error }) => (
|
|
<div className="rw-cell-error">{error?.message}</div>
|
|
)
|
|
|
|
export const Success = ({ artikel, kategories }) => {
|
|
const [updateArtikel, { loading, error }] = useMutation(
|
|
UPDATE_ARTIKEL_MUTATION,
|
|
{
|
|
onCompleted: () => {
|
|
toast.success('Artikel updated')
|
|
navigate(routes.artikels())
|
|
},
|
|
onError: (error) => {
|
|
toast.error(error.message)
|
|
},
|
|
}
|
|
)
|
|
|
|
const onSave = (input, id) => {
|
|
updateArtikel({ variables: { id, input } })
|
|
}
|
|
|
|
return (
|
|
<div className="rw-segment">
|
|
<header className="rw-segment-header">
|
|
<h2 className="rw-heading rw-heading-secondary">
|
|
Edit Artikel {artikel?.id}
|
|
</h2>
|
|
</header>
|
|
<div className="rw-segment-main">
|
|
<ArtikelForm
|
|
artikel={artikel}
|
|
kategories={kategories}
|
|
onSave={onSave}
|
|
error={error}
|
|
loading={loading}
|
|
/>
|
|
</div>
|
|
</div>
|
|
)
|
|
}
|