Simon Zeyer 9a26d97209 Init DB and Tests with Components
- add Artikel, Kauf, Kategorie Model
- generate Components
- playing with custom components
- add Tailwindcss
2023-11-05 21:35:01 +00:00

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>
)
}