Hydration failed because the server rendered

введите сюда описание изображения

'use client'
import { AddressSuggestions } from 'react-dadata'
import 'react-dadata/dist/react-dadata.css'
interface Props {
    onChange?: (value?: string) => void
}
export const AdressInput = ({ onChange }: Props) => {
    return (
        <AddressSuggestions
            token='token'
            onChange={(data: { value: string | undefined }) =>
                onChange?.(data?.value)
            }
        />
    )
}
// проблема возникает при работе с данным файлом

'use client'
import { AdressInput, FormTextarea, Input, WhiteBlock } from '@/components'
import React from 'react'

interface Props {
    className?: string
}

export const CheckoutAddressForm: React.FC<Props> = ({ className }) => {
    return (
        <WhiteBlock title='3. Адрес доставки' className={className}>
            <div className='flex flex-col gap-5'>
                <Input placeholder='123...' />

                <AdressInput />

                <FormTextarea
                    name='comment'
                    className='text-base'
                    placeholder='Комментарий к заказу'
                    rows={5}
                />
            </div>
        </WhiteBlock>
    )
}

'use client'
import {
    CheckoutAddressForm,
    CheckoutCart,
    CheckoutPersonalForm,
    CheckoutSidebar,
    Container,
    Title,
} from '@/components'
import {
    checkoutFormSchema,
    CheckoutFormValues,
} from '@/constants/checkoutFormSchema'
import { useCart } from '@/hooks'
import { zodResolver } from '@hookform/resolvers/zod'
import { FormProvider, useForm } from 'react-hook-form'

const page = () => {
    const onClickCountButton = (
        id: number,
        quantity: number,
        type: 'plus' | 'minus'
    ) => {
        const newQuantity = type === 'plus' ? quantity + 1 : quantity - 1
        updateItemQuantity(id, newQuantity)
    }

    // eslint-disable-next-line react-hooks/rules-of-hooks
    const { totalAmount, updateItemQuantity, items, removeCartItem } = useCart()

    // eslint-disable-next-line react-hooks/rules-of-hooks
    const form = useForm<CheckoutFormValues>({
        resolver: zodResolver(checkoutFormSchema),
        defaultValues: {
            email: '',
            firstName: '',
            lastName: '',
            phone: '',
            address: '',
            comment: '',
        },
    })
    const onSubmit = (data: CheckoutFormValues) => {
        console.log(data)
    }

    return (
        <Container className='mt-10'>
            <Title
                className='font-extrabold mb-8 text-[36px]'
                text={'Оформление заказа'}
                size='lg'
            />
            <FormProvider {...form}>
                <form onSubmit={form.handleSubmit(onSubmit)}>
                    <div className='flex gap-10'>
                        <div className='flex flex-col gap-10 flex-1 mb-20'>
                            {/* 1) cart */}
                            <CheckoutCart
                                onClickCountButton={onClickCountButton}
                                removeCartItem={removeCartItem}
                                items={items}
                            />
                            {/* 2) personal data */}
                            <CheckoutPersonalForm />
                            {/* 3) delivery address */}
                            <CheckoutAddressForm />
                        </div>
                        {/* -------------- */}
                        <div className='w-[450px]'>
                            <CheckoutSidebar totalAmount={totalAmount} />
                        </div>
                    </div>
                </form>
            </FormProvider>
        </Container>
    )
}

export default page


Ответы (0 шт):