ImageUploader Userform #56
@@ -15,14 +15,14 @@ export const schema = gql`
|
|||||||
|
|
||||||
input CreateUserInput {
|
input CreateUserInput {
|
||||||
email: String!
|
email: String!
|
||||||
issuer: String!
|
# issuer: String!
|
||||||
image: String
|
image: String
|
||||||
|
|
|||||||
bio: String
|
bio: String
|
||||||
}
|
}
|
||||||
|
|
||||||
input UpdateUserInput {
|
input UpdateUserInput {
|
||||||
email: String
|
email: String
|
||||||
issuer: String
|
# issuer: String
|
||||||
image: String
|
image: String
|
||||||
bio: String
|
bio: String
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -117,3 +117,4 @@ function getCroppedImg(image, crop, fileName) {
|
|||||||
}, 'image/jpeg', 1);
|
}, 'image/jpeg', 1);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { useMutation, useFlash } from '@redwoodjs/web'
|
import { useMutation, useFlash } from '@redwoodjs/web'
|
||||||
import { Link, routes, navigate } from '@redwoodjs/router'
|
import { Link, routes, navigate } from '@redwoodjs/router'
|
||||||
|
import { Image as CloudinaryImage } from 'cloudinary-react'
|
||||||
const DELETE_USER_MUTATION = gql`
|
const DELETE_USER_MUTATION = gql`
|
||||||
mutation DeleteUserMutation($id: Int!) {
|
mutation DeleteUserMutation($id: Int!) {
|
||||||
deleteUser(id: $id) {
|
deleteUser(id: $id) {
|
||||||
@@ -72,7 +72,13 @@ const User = ({ user }) => {
|
|||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th>Image</th>
|
<th>Image</th>
|
||||||
<td>{user.image}</td>
|
<td><CloudinaryImage
|
||||||
|
className="object-cover w-full rounded shadow"
|
||||||
|
cloudName="irevdev"
|
||||||
|
publicId={user.image}
|
||||||
|
width="300"
|
||||||
|
crop="scale"
|
||||||
|
/></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th>Bio</th>
|
<th>Bio</th>
|
||||||
|
|||||||
@@ -6,10 +6,21 @@ import {
|
|||||||
TextField,
|
TextField,
|
||||||
Submit,
|
Submit,
|
||||||
} from '@redwoodjs/forms'
|
} from '@redwoodjs/forms'
|
||||||
|
import { useState } from 'react';
|
||||||
|
import { navigate, routes } from '@redwoodjs/router'
|
||||||
|
import { useFlash } from '@redwoodjs/web'
|
||||||
|
import ImageUploader from '../PartForm/ImageUploader'
|
||||||
const UserForm = (props) => {
|
const UserForm = (props) => {
|
||||||
const onSubmit = (data) => {
|
const { addMessage } = useFlash()
|
||||||
props.onSave(data, props?.user?.id)
|
// const [bio, setBio] = useState(props?.user?.bio)
|
||||||
|
const [imageUrl, setImageUrl] = useState(props?.user?.image)
|
||||||
|
const onSubmit = async (data, e) => {
|
||||||
|
|
||||||
|
await props.onSave({
|
||||||
|
...data,
|
||||||
|
image: imageUrl
|
||||||
|
}, props?.user?.id)
|
||||||
|
addMessage('User updated.', { classes: 'rw-flash-success' })
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@@ -37,21 +48,7 @@ const UserForm = (props) => {
|
|||||||
validation={{ required: true }}
|
validation={{ required: true }}
|
||||||
/>
|
/>
|
||||||
<FieldError name="email" className="rw-field-error" />
|
<FieldError name="email" className="rw-field-error" />
|
||||||
|
<ImageUploader onImageUpload={({cloudinaryPublicId}) => setImageUrl(cloudinaryPublicId)} />
|
||||||
<Label
|
|
||||||
name="image"
|
|
||||||
className="rw-label"
|
|
||||||
errorClassName="rw-label rw-label-error"
|
|
||||||
>
|
|
||||||
Image
|
|
||||||
</Label>
|
|
||||||
<TextField
|
|
||||||
name="image"
|
|
||||||
defaultValue={props.user?.image}
|
|
||||||
className="rw-input"
|
|
||||||
errorClassName="rw-input rw-input-error"
|
|
||||||
/>
|
|
||||||
<FieldError name="image" className="rw-field-error" />
|
|
||||||
|
|
||||||
<Label
|
<Label
|
||||||
name="bio"
|
name="bio"
|
||||||
@@ -65,6 +62,7 @@ const UserForm = (props) => {
|
|||||||
defaultValue={props.user?.bio}
|
defaultValue={props.user?.bio}
|
||||||
className="rw-input"
|
className="rw-input"
|
||||||
errorClassName="rw-input rw-input-error"
|
errorClassName="rw-input rw-input-error"
|
||||||
|
validation={{ required: true }}
|
||||||
/>
|
/>
|
||||||
<FieldError name="bio" className="rw-field-error" />
|
<FieldError name="bio" className="rw-field-error" />
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user
What was happening here, was this causing problems?
Yes, The error was Field "issuer" of required type "String!" was not provided.
The Schema you have created does not use this field.