import React from 'react';
import { RegionalizationContextProvider } from '../../context/RegionalizationContext';
import type { RegionalizationProps } from '../../types/RegionalizationProps';
import { ViewsContainer } from '../../views/ViewsContainer';

export const Regionalization: React.FC<RegionalizationProps> = ({
  setMethod,
  setPickupName,
  setCity,
  deliveryPrice,
  setUf,
  setPickupTimes,
  pricesAndHours,
  setModalOpen,
  inputPostalCode,
  setInputPostalCode,
  sendPostalCode,
  status,
  setStatus,
  pickupPoints,
  regionalizeCatalog,
  titleText = 'Preços e estoque podem variar de acordo com a loja que irá te atender',
  moreInfosText = 'Horários de atendimento e entrega',
  textBackButton = 'Voltar',
  confirmButton = 'Ok, Entendi',
  editAddress = 'Alterar',
  delivery = {
    title: 'Receber em Casa',
    labelPrice: 'A partir de',
    price: 12.99,
    labelScheduling: 'Previsão de Entrega:',
    scheduling: 'Você pode receber no mesmo dia, ou agendar',
    searchButton: 'Buscar',
    linkHref: 'https://buscacepinter.correios.com.br/app/endereco/index.php',
    linkText: 'Não sei meu CEP',
    titleOk: 'Receber em casa',
    labelAddress: 'Entregar em:',
    confirmButton: 'Receber em casa',
  },
  pickup = {
    title: 'Retirar na Loja',
    labelPrice: 'Retirada',
    price: 0,
    labelScheduling: 'Agendamento a partir de:',
    scheduling: 'Hoje ou em até 4 dias úteis',
    buttonOpenStores: 'Escolher loja',
    labelFilter: 'Em qual loja você deseja retirar?',
    labelStores: 'Escolha uma loja abaixo:',
    divider: 'ou',
    chooseStore: 'Retirar nessa',
    titleOk: 'Retirar na Loja',
    labelAddress: 'Retirar em:',
    confirmButton: 'Retirar na loja',
  },
}) => {
  return (
    <RegionalizationContextProvider
      setMethod={setMethod}
      setPickupName={setPickupName}
      setCity={setCity}
      setUf={setUf}
      setPickupTimes={setPickupTimes}
      pricesAndHours={pricesAndHours}
      setModalOpen={setModalOpen}
      inputPostalCode={inputPostalCode}
      setInputPostalCode={setInputPostalCode}
      sendPostalCode={sendPostalCode}
      pickupPoints={pickupPoints}
      titleText={titleText}
      moreInfosText={moreInfosText}
      textBackButton={textBackButton}
      editAddress={editAddress}
      deliveryPrice={deliveryPrice}
      confirmButton={confirmButton}
      delivery={delivery}
      pickup={pickup}
      setStatus={setStatus}
      status={status}
      regionalizeCatalog={regionalizeCatalog}
    >
      <ViewsContainer />
    </RegionalizationContextProvider>
  );
};
