mirror of
https://github.com/hanzo-io/chat.git
synced 2026-10-30 18:57:58 +00:00
* feat: Camera functionality and UI changes * chore: moved all buttons to Buttons folder * chore: add back comments --------- Co-authored-by: Nikhil Kothari <[email protected]>
62 lines
1.8 KiB
TypeScript
62 lines
1.8 KiB
TypeScript
import { useFrappeFileUpload, useFrappePostCall } from 'frappe-react-sdk'
|
|
import { toast } from 'sonner-native'
|
|
import ImagePickerButton from '@components/common/Buttons/ImagePickerButton'
|
|
import { CustomFile } from '@raven/types/common/File'
|
|
import useCurrentRavenUser from '@raven/lib/hooks/useCurrentRavenUser'
|
|
|
|
interface UploadImageProps {
|
|
onSheetClose: () => void
|
|
}
|
|
|
|
const UploadImage = ({ onSheetClose }: UploadImageProps) => {
|
|
|
|
const { myProfile } = useCurrentRavenUser()
|
|
|
|
const { call } = useFrappePostCall('raven.api.raven_users.update_raven_user')
|
|
|
|
const { upload } = useFrappeFileUpload()
|
|
|
|
const uploadImage = async (file: string) => {
|
|
if (file) {
|
|
try {
|
|
await call({
|
|
user_image: file
|
|
})
|
|
toast.success("Image uploaded successfully.")
|
|
onSheetClose()
|
|
} catch (error) {
|
|
toast.error('Error while uploading profile image')
|
|
}
|
|
}
|
|
}
|
|
|
|
const onPick = async (files: CustomFile[]) => {
|
|
const file = files[0]
|
|
|
|
if (file) {
|
|
|
|
try {
|
|
const res = await upload(file, {
|
|
doctype: "Raven User",
|
|
docname: myProfile?.name,
|
|
fieldname: "user_image",
|
|
otherData: {
|
|
optimize: '1',
|
|
},
|
|
isPrivate: false,
|
|
})
|
|
await uploadImage(res.file_url)
|
|
} catch (error) {
|
|
console.error(error)
|
|
toast.error('Error uploading image')
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
return (
|
|
<ImagePickerButton onPick={onPick} allowsMultipleSelection={false} />
|
|
)
|
|
}
|
|
|
|
export default UploadImage |