diff --git a/src/components/appointments/CreateAppointment/Summary.js b/src/components/appointments/CreateAppointment/Summary.js index d0c7510be..dd649d639 100644 --- a/src/components/appointments/CreateAppointment/Summary.js +++ b/src/components/appointments/CreateAppointment/Summary.js @@ -15,12 +15,12 @@ import SummaryConfirmation from 'components/SummaryConfirmation'; import {ValidationError} from 'errors'; import useTitle from 'hooks/useTitle'; -import {getContactDetailsFields} from '../ContactDetailsStep'; -import {fieldLabel as dateLabel} from '../DateSelect'; -import {getLocations, fieldLabel as locationLabel} from '../LocationSelect'; -import {amountLabel} from '../Product'; -import {getAllProducts, fieldLabel as productLabel} from '../ProductSelect'; -import {fieldLabel as timeLabel} from '../TimeSelect'; +import {fieldLabel as dateLabel} from '../fields/DateSelect'; +import {getLocations, fieldLabel as locationLabel} from '../fields/LocationSelect'; +import {amountLabel} from '../fields/Product'; +import {getAllProducts, fieldLabel as productLabel} from '../fields/ProductSelect'; +import {fieldLabel as timeLabel} from '../fields/TimeSelect'; +import {getContactDetailsFields} from '../steps/ContactDetailsStep'; import {useCreateAppointmentContext} from './CreateAppointmentState'; const createAppointment = async (baseUrl, submission, appointmentData, statementValues) => { diff --git a/src/components/appointments/CreateAppointment/routes.js b/src/components/appointments/CreateAppointment/routes.js index 38ad4f509..30ede3302 100644 --- a/src/components/appointments/CreateAppointment/routes.js +++ b/src/components/appointments/CreateAppointment/routes.js @@ -3,9 +3,7 @@ import {Navigate, matchPath, resolvePath} from 'react-router-dom'; import useQuery from 'hooks/useQuery'; -import ChooseProductStep from '../ChooseProductStep'; -import ContactDetailsStep from '../ContactDetailsStep'; -import LocationAndTimeStep from '../LocationAndTimeStep'; +import {ChooseProductStep, ContactDetailsStep, LocationAndTimeStep} from '../steps'; import Confirmation from './Confirmation'; import Summary from './Summary'; diff --git a/src/components/appointments/ManageAppointment.js b/src/components/appointments/ManageAppointment.js index 6918007ff..bcf581fb1 100644 --- a/src/components/appointments/ManageAppointment.js +++ b/src/components/appointments/ManageAppointment.js @@ -4,8 +4,7 @@ import {Route, Routes} from 'react-router-dom'; import ErrorBoundary from 'components/ErrorBoundary'; import {LayoutColumn} from 'components/Layout'; -import CancelAppointment from './CancelAppointment'; -import CancelAppointmentSuccess from './CancelAppointmentSuccess'; +import {CancelAppointment, CancelAppointmentSuccess} from './cancel'; // with react router v6, these routes can be hoisted into the App if we'd like to diff --git a/src/components/appointments/CancelAppointment.integration.spec.js b/src/components/appointments/cancel/CancelAppointment.integration.spec.js similarity index 100% rename from src/components/appointments/CancelAppointment.integration.spec.js rename to src/components/appointments/cancel/CancelAppointment.integration.spec.js diff --git a/src/components/appointments/CancelAppointment.js b/src/components/appointments/cancel/CancelAppointment.js similarity index 100% rename from src/components/appointments/CancelAppointment.js rename to src/components/appointments/cancel/CancelAppointment.js diff --git a/src/components/appointments/CancelAppointment.stories.js b/src/components/appointments/cancel/CancelAppointment.stories.js similarity index 98% rename from src/components/appointments/CancelAppointment.stories.js rename to src/components/appointments/cancel/CancelAppointment.stories.js index 7d97d94be..cd0ae9432 100644 --- a/src/components/appointments/CancelAppointment.stories.js +++ b/src/components/appointments/cancel/CancelAppointment.stories.js @@ -3,8 +3,8 @@ import {withRouter} from 'storybook-addon-react-router-v6'; import Card from 'components/Card'; import {ConfigDecorator, LayoutDecorator} from 'story-utils/decorators'; +import {mockAppointmentCancelErrorPost, mockAppointmentCancelPost} from '../mocks'; import CancelAppointment from './CancelAppointment'; -import {mockAppointmentCancelErrorPost, mockAppointmentCancelPost} from './mocks'; export default { title: 'Private API / Appointments / Cancellation / Cancel', diff --git a/src/components/appointments/CancelAppointmentSuccess.js b/src/components/appointments/cancel/CancelAppointmentSuccess.js similarity index 100% rename from src/components/appointments/CancelAppointmentSuccess.js rename to src/components/appointments/cancel/CancelAppointmentSuccess.js diff --git a/src/components/appointments/CancelAppointmentSuccess.stories.js b/src/components/appointments/cancel/CancelAppointmentSuccess.stories.js similarity index 100% rename from src/components/appointments/CancelAppointmentSuccess.stories.js rename to src/components/appointments/cancel/CancelAppointmentSuccess.stories.js diff --git a/src/components/appointments/cancel/index.js b/src/components/appointments/cancel/index.js new file mode 100644 index 000000000..27fedab0b --- /dev/null +++ b/src/components/appointments/cancel/index.js @@ -0,0 +1,2 @@ +export {default as CancelAppointment} from './CancelAppointment'; +export {default as CancelAppointmentSuccess} from './CancelAppointmentSuccess'; diff --git a/src/components/appointments/DateSelect.js b/src/components/appointments/fields/DateSelect.js similarity index 96% rename from src/components/appointments/DateSelect.js rename to src/components/appointments/fields/DateSelect.js index 1fa2badb9..8d9049f7e 100644 --- a/src/components/appointments/DateSelect.js +++ b/src/components/appointments/fields/DateSelect.js @@ -10,8 +10,8 @@ import {ConfigContext} from 'Context'; import {get} from 'api'; import {DateField} from 'components/forms'; -import {ProductsType} from './types'; -import {prepareProductsForProductIDQuery} from './utils'; +import {ProductsType} from '../types'; +import {prepareProductsForProductIDQuery} from '../utils'; export const fieldLabel = defineMessage({ description: 'Appoinments: appointment date label', diff --git a/src/components/appointments/DateSelect.mdx b/src/components/appointments/fields/DateSelect.mdx similarity index 100% rename from src/components/appointments/DateSelect.mdx rename to src/components/appointments/fields/DateSelect.mdx diff --git a/src/components/appointments/DateSelect.spec.js b/src/components/appointments/fields/DateSelect.spec.js similarity index 98% rename from src/components/appointments/DateSelect.spec.js rename to src/components/appointments/fields/DateSelect.spec.js index 245087061..4a30fffa3 100644 --- a/src/components/appointments/DateSelect.spec.js +++ b/src/components/appointments/fields/DateSelect.spec.js @@ -9,8 +9,8 @@ import {ConfigContext} from 'Context'; import {BASE_URL} from 'api-mocks'; import mswServer from 'api-mocks/msw-server'; +import {mockAppointmentDatesGet} from '../mocks'; import DateSelect from './DateSelect'; -import {mockAppointmentDatesGet} from './mocks'; const waitForPosition = () => act(async () => {}); diff --git a/src/components/appointments/DateSelect.stories.js b/src/components/appointments/fields/DateSelect.stories.js similarity index 97% rename from src/components/appointments/DateSelect.stories.js rename to src/components/appointments/fields/DateSelect.stories.js index ab85b1194..7ba2d75b4 100644 --- a/src/components/appointments/DateSelect.stories.js +++ b/src/components/appointments/fields/DateSelect.stories.js @@ -3,8 +3,8 @@ import {userEvent, within} from '@storybook/testing-library'; import {ConfigDecorator, FormikDecorator} from 'story-utils/decorators'; +import {mockAppointmentDatesGet} from '../mocks'; import DateSelect from './DateSelect'; -import {mockAppointmentDatesGet} from './mocks'; export default { title: 'Private API / Appointments / Fields / DateSelect', diff --git a/src/components/appointments/LocationSelect.js b/src/components/appointments/fields/LocationSelect.js similarity index 98% rename from src/components/appointments/LocationSelect.js rename to src/components/appointments/fields/LocationSelect.js index c7e925e2d..e35c461da 100644 --- a/src/components/appointments/LocationSelect.js +++ b/src/components/appointments/fields/LocationSelect.js @@ -7,7 +7,7 @@ import {get} from 'api'; import {getCached, setCached} from 'cache'; import {AsyncSelectField} from 'components/forms'; -import {ProductsType} from './types'; +import {ProductsType} from '../types'; // TODO: use a nicer widget/form field than select diff --git a/src/components/appointments/LocationSelect.stories.js b/src/components/appointments/fields/LocationSelect.stories.js similarity index 97% rename from src/components/appointments/LocationSelect.stories.js rename to src/components/appointments/fields/LocationSelect.stories.js index 3a14eb551..58fc77256 100644 --- a/src/components/appointments/LocationSelect.stories.js +++ b/src/components/appointments/fields/LocationSelect.stories.js @@ -3,8 +3,8 @@ import {userEvent, waitFor, within} from '@storybook/testing-library'; import {ConfigDecorator, FormikDecorator} from 'story-utils/decorators'; +import {mockAppointmentLocationsGet} from '../mocks'; import LocationSelect from './LocationSelect'; -import {mockAppointmentLocationsGet} from './mocks'; export default { title: 'Private API / Appointments / Fields / LocationSelect', diff --git a/src/components/appointments/Product.js b/src/components/appointments/fields/Product.js similarity index 92% rename from src/components/appointments/Product.js rename to src/components/appointments/fields/Product.js index d58a8dd4f..e7c20d7bc 100644 --- a/src/components/appointments/Product.js +++ b/src/components/appointments/fields/Product.js @@ -4,9 +4,9 @@ import {defineMessage, useIntl} from 'react-intl'; import {NumberField} from 'components/forms'; -import {AppointmentConfigContext} from './Context'; +import {AppointmentConfigContext} from '../Context'; +import {ProductsType} from '../types'; import ProductSelect from './ProductSelect'; -import {ProductsType} from './types'; export const amountLabel = defineMessage({ description: 'Appointments: product amount field label', diff --git a/src/components/appointments/Product.stories.js b/src/components/appointments/fields/Product.stories.js similarity index 96% rename from src/components/appointments/Product.stories.js rename to src/components/appointments/fields/Product.stories.js index 4ad811657..12947c81b 100644 --- a/src/components/appointments/Product.stories.js +++ b/src/components/appointments/fields/Product.stories.js @@ -3,9 +3,9 @@ import {userEvent, within} from '@storybook/testing-library'; import {ConfigDecorator, FormikDecorator} from 'story-utils/decorators'; -import {AppointmentConfigContext} from './Context'; +import {AppointmentConfigContext} from '../Context'; +import {mockAppointmentProductsGet} from '../mocks'; import Product from './Product'; -import {mockAppointmentProductsGet} from './mocks'; const PRODUCTS_DATA = [ { diff --git a/src/components/appointments/ProductSelect.js b/src/components/appointments/fields/ProductSelect.js similarity index 98% rename from src/components/appointments/ProductSelect.js rename to src/components/appointments/fields/ProductSelect.js index ac9f90d35..65f7eb3a2 100644 --- a/src/components/appointments/ProductSelect.js +++ b/src/components/appointments/fields/ProductSelect.js @@ -8,7 +8,7 @@ import {get} from 'api'; import {getCached, setCached} from 'cache'; import {AsyncSelectField} from 'components/forms'; -import {ProductsType} from './types'; +import {ProductsType} from '../types'; const CACHED_PRODUCTS_KEY = 'appointment|all-products'; const CACHED_PRODUCTS_MAX_AGE_MS = 15 * 60 * 1000; // 15 minutes diff --git a/src/components/appointments/ProductSelect.stories.js b/src/components/appointments/fields/ProductSelect.stories.js similarity index 95% rename from src/components/appointments/ProductSelect.stories.js rename to src/components/appointments/fields/ProductSelect.stories.js index 2388c7ca9..8bd1560bb 100644 --- a/src/components/appointments/ProductSelect.stories.js +++ b/src/components/appointments/fields/ProductSelect.stories.js @@ -3,8 +3,8 @@ import {userEvent, within} from '@storybook/testing-library'; import {ConfigDecorator, FormikDecorator} from 'story-utils/decorators'; +import {mockAppointmentProductsGet} from '../mocks'; import {default as ProductSelectComponent} from './ProductSelect'; -import {mockAppointmentProductsGet} from './mocks'; export default { title: 'Private API / Appointments / Fields / ProductSelect', diff --git a/src/components/appointments/TimeSelect.js b/src/components/appointments/fields/TimeSelect.js similarity index 96% rename from src/components/appointments/TimeSelect.js rename to src/components/appointments/fields/TimeSelect.js index f4af6f14b..f51cc6e38 100644 --- a/src/components/appointments/TimeSelect.js +++ b/src/components/appointments/fields/TimeSelect.js @@ -8,8 +8,8 @@ import {get} from 'api'; import {AsyncSelectField} from 'components/forms'; import {useCalendarLocale} from 'components/forms/DateField'; -import {ProductsType} from './types'; -import {prepareProductsForProductIDQuery} from './utils'; +import {ProductsType} from '../types'; +import {prepareProductsForProductIDQuery} from '../utils'; export const fieldLabel = defineMessage({ description: 'Appoinments: time select label', diff --git a/src/components/appointments/TimeSelect.mdx b/src/components/appointments/fields/TimeSelect.mdx similarity index 100% rename from src/components/appointments/TimeSelect.mdx rename to src/components/appointments/fields/TimeSelect.mdx diff --git a/src/components/appointments/TimeSelect.stories.js b/src/components/appointments/fields/TimeSelect.stories.js similarity index 97% rename from src/components/appointments/TimeSelect.stories.js rename to src/components/appointments/fields/TimeSelect.stories.js index d445a3362..6cbf94bfb 100644 --- a/src/components/appointments/TimeSelect.stories.js +++ b/src/components/appointments/fields/TimeSelect.stories.js @@ -4,8 +4,8 @@ import {addDays, formatISO} from 'date-fns'; import {ConfigDecorator, FormikDecorator} from 'story-utils/decorators'; +import {mockAppointmentTimesGet} from '../mocks'; import TimeSelect from './TimeSelect'; -import {mockAppointmentTimesGet} from './mocks'; const tomorrow = formatISO(addDays(new Date(), 1), {representation: 'date'}); diff --git a/src/components/appointments/fields/index.js b/src/components/appointments/fields/index.js new file mode 100644 index 000000000..d72d305b3 --- /dev/null +++ b/src/components/appointments/fields/index.js @@ -0,0 +1,4 @@ +export {default as DateSelect} from './DateSelect'; +export {default as LocationSelect} from './LocationSelect'; +export {default as Product} from './Product'; +export {default as TimeSelect} from './TimeSelect'; diff --git a/src/components/appointments/ChooseProductStep.js b/src/components/appointments/steps/ChooseProductStep.js similarity index 96% rename from src/components/appointments/ChooseProductStep.js rename to src/components/appointments/steps/ChooseProductStep.js index c545ce2da..acf93ca8f 100644 --- a/src/components/appointments/ChooseProductStep.js +++ b/src/components/appointments/steps/ChooseProductStep.js @@ -16,10 +16,10 @@ import useQuery from 'hooks/useQuery'; import useTitle from 'hooks/useTitle'; import {getBEMClassName} from 'utils'; -import {AppointmentConfigContext} from './Context'; -import {useCreateAppointmentContext} from './CreateAppointment/CreateAppointmentState'; -import Product from './Product'; -import SubmitRow from './SubmitRow'; +import {AppointmentConfigContext} from '../Context'; +import {useCreateAppointmentContext} from '../CreateAppointment/CreateAppointmentState'; +import SubmitRow from '../SubmitRow'; +import {Product} from '../fields'; const productSchema = z .array( diff --git a/src/components/appointments/ChooseProductStep.mdx b/src/components/appointments/steps/ChooseProductStep.mdx similarity index 100% rename from src/components/appointments/ChooseProductStep.mdx rename to src/components/appointments/steps/ChooseProductStep.mdx diff --git a/src/components/appointments/ChooseProductStep.spec.js b/src/components/appointments/steps/ChooseProductStep.spec.js similarity index 94% rename from src/components/appointments/ChooseProductStep.spec.js rename to src/components/appointments/steps/ChooseProductStep.spec.js index 807ce5e0c..ae00c0018 100644 --- a/src/components/appointments/ChooseProductStep.spec.js +++ b/src/components/appointments/steps/ChooseProductStep.spec.js @@ -8,10 +8,10 @@ import {ConfigContext} from 'Context'; import {BASE_URL, buildSubmission} from 'api-mocks'; import mswServer from 'api-mocks/msw-server'; +import {CreateAppointmentContext} from '../Context'; +import {buildContextValue} from '../CreateAppointment/CreateAppointmentState'; +import {mockAppointmentProductsGet} from '../mocks'; import ChooseProductStep from './ChooseProductStep'; -import {CreateAppointmentContext} from './Context'; -import {buildContextValue} from './CreateAppointment/CreateAppointmentState'; -import {mockAppointmentProductsGet} from './mocks'; const render = () => { const appointmentContext = buildContextValue({ diff --git a/src/components/appointments/ChooseProductStep.stories.js b/src/components/appointments/steps/ChooseProductStep.stories.js similarity index 96% rename from src/components/appointments/ChooseProductStep.stories.js rename to src/components/appointments/steps/ChooseProductStep.stories.js index 87d7c021c..cfe5ae618 100644 --- a/src/components/appointments/ChooseProductStep.stories.js +++ b/src/components/appointments/steps/ChooseProductStep.stories.js @@ -4,10 +4,10 @@ import {withRouter} from 'storybook-addon-react-router-v6'; import {ConfigDecorator, LayoutDecorator, withCard} from 'story-utils/decorators'; +import {AppointmentConfigContext} from '../Context'; +import {mockAppointmentProductsGet} from '../mocks'; +import {withAppointmentState} from '../story-utils'; import ChooseProductStep from './ChooseProductStep'; -import {AppointmentConfigContext} from './Context'; -import {mockAppointmentProductsGet} from './mocks'; -import {withAppointmentState} from './story-utils'; export default { title: 'Private API / Appointments / Steps / 1 - Choose product', diff --git a/src/components/appointments/ContactDetailsStep.js b/src/components/appointments/steps/ContactDetailsStep.js similarity index 97% rename from src/components/appointments/ContactDetailsStep.js rename to src/components/appointments/steps/ContactDetailsStep.js index 0fc1c4e0c..8b9ab8e81 100644 --- a/src/components/appointments/ContactDetailsStep.js +++ b/src/components/appointments/steps/ContactDetailsStep.js @@ -16,8 +16,8 @@ import Loader from 'components/Loader'; import {FormioComponent, getEmptyValue, getSchema} from 'components/formio'; import useTitle from 'hooks/useTitle'; -import {useCreateAppointmentContext} from './CreateAppointment/CreateAppointmentState'; -import SubmitRow from './SubmitRow'; +import {useCreateAppointmentContext} from '../CreateAppointment/CreateAppointmentState'; +import SubmitRow from '../SubmitRow'; const CACHED_CONTACT_DETAILS_FIELDS_KEY = 'appointments|contactDetailsFields'; const CACHED_CONTACT_DETAILS_FIELDS_MAX_AGE_MS = 15 * 60 * 1000; // 15 minutes diff --git a/src/components/appointments/ContactDetailsStep.mdx b/src/components/appointments/steps/ContactDetailsStep.mdx similarity index 100% rename from src/components/appointments/ContactDetailsStep.mdx rename to src/components/appointments/steps/ContactDetailsStep.mdx diff --git a/src/components/appointments/ContactDetailsStep.stories.js b/src/components/appointments/steps/ContactDetailsStep.stories.js similarity index 96% rename from src/components/appointments/ContactDetailsStep.stories.js rename to src/components/appointments/steps/ContactDetailsStep.stories.js index ef8c577f5..fed1702fa 100644 --- a/src/components/appointments/ContactDetailsStep.stories.js +++ b/src/components/appointments/steps/ContactDetailsStep.stories.js @@ -5,9 +5,9 @@ import {withRouter} from 'storybook-addon-react-router-v6'; import {ConfigDecorator, LayoutDecorator, withCard} from 'story-utils/decorators'; +import {mockAppointmentCustomerFieldsGet} from '../mocks'; +import {withAppointmentState} from '../story-utils'; import ContactDetailsStep from './ContactDetailsStep'; -import {mockAppointmentCustomerFieldsGet} from './mocks'; -import {withAppointmentState} from './story-utils'; const TOMORROW = formatISO(addDays(new Date(), 1), {representation: 'date'}); diff --git a/src/components/appointments/LocationAndTimeStep.js b/src/components/appointments/steps/LocationAndTimeStep.js similarity index 94% rename from src/components/appointments/LocationAndTimeStep.js rename to src/components/appointments/steps/LocationAndTimeStep.js index b7640ef07..f6acadfdf 100644 --- a/src/components/appointments/LocationAndTimeStep.js +++ b/src/components/appointments/steps/LocationAndTimeStep.js @@ -14,13 +14,11 @@ import {CardTitle} from 'components/Card'; import Loader from 'components/Loader'; import useTitle from 'hooks/useTitle'; -import {useCreateAppointmentContext} from './CreateAppointment/CreateAppointmentState'; -import DateSelect from './DateSelect'; -import LocationSelect from './LocationSelect'; -import {getAllProducts} from './ProductSelect'; -import SubmitRow from './SubmitRow'; -import TimeSelect from './TimeSelect'; -import {ProductsType} from './types'; +import {useCreateAppointmentContext} from '../CreateAppointment/CreateAppointmentState'; +import SubmitRow from '../SubmitRow'; +import {DateSelect, LocationSelect, TimeSelect} from '../fields'; +import {getAllProducts} from '../fields/ProductSelect'; +import {ProductsType} from '../types'; const schema = z.object({ location: z.string(), diff --git a/src/components/appointments/LocationAndTimeStep.mdx b/src/components/appointments/steps/LocationAndTimeStep.mdx similarity index 100% rename from src/components/appointments/LocationAndTimeStep.mdx rename to src/components/appointments/steps/LocationAndTimeStep.mdx diff --git a/src/components/appointments/LocationAndTimeStep.spec.js b/src/components/appointments/steps/LocationAndTimeStep.spec.js similarity index 97% rename from src/components/appointments/LocationAndTimeStep.spec.js rename to src/components/appointments/steps/LocationAndTimeStep.spec.js index 1c69903c2..8a5319c49 100644 --- a/src/components/appointments/LocationAndTimeStep.spec.js +++ b/src/components/appointments/steps/LocationAndTimeStep.spec.js @@ -9,15 +9,15 @@ import {ConfigContext} from 'Context'; import {BASE_URL, buildSubmission} from 'api-mocks'; import mswServer from 'api-mocks/msw-server'; -import {CreateAppointmentContext} from './Context'; -import {buildContextValue} from './CreateAppointment/CreateAppointmentState'; -import LocationAndTimeStep from './LocationAndTimeStep'; +import {CreateAppointmentContext} from '../Context'; +import {buildContextValue} from '../CreateAppointment/CreateAppointmentState'; import { mockAppointmentDatesGet, mockAppointmentLocationsGet, mockAppointmentProductsGet, mockAppointmentTimesGet, -} from './mocks'; +} from '../mocks'; +import LocationAndTimeStep from './LocationAndTimeStep'; const render = initialValues => { const {products, ...stepData} = initialValues; diff --git a/src/components/appointments/LocationAndTimeStep.stories.js b/src/components/appointments/steps/LocationAndTimeStep.stories.js similarity index 97% rename from src/components/appointments/LocationAndTimeStep.stories.js rename to src/components/appointments/steps/LocationAndTimeStep.stories.js index 1a03e17a5..85f51bb44 100644 --- a/src/components/appointments/LocationAndTimeStep.stories.js +++ b/src/components/appointments/steps/LocationAndTimeStep.stories.js @@ -5,14 +5,14 @@ import {withRouter} from 'storybook-addon-react-router-v6'; import {ConfigDecorator, LayoutDecorator, withCard} from 'story-utils/decorators'; -import LocationAndTimeStep from './LocationAndTimeStep'; import { mockAppointmentDatesGet, mockAppointmentLocationsGet, mockAppointmentProductsGet, mockAppointmentTimesGet, -} from './mocks'; -import {withAppointmentState} from './story-utils'; +} from '../mocks'; +import {withAppointmentState} from '../story-utils'; +import LocationAndTimeStep from './LocationAndTimeStep'; export default { title: 'Private API / Appointments / Steps / 2 - Location and time', diff --git a/src/components/appointments/steps/index.js b/src/components/appointments/steps/index.js new file mode 100644 index 000000000..e2fce8ba1 --- /dev/null +++ b/src/components/appointments/steps/index.js @@ -0,0 +1,3 @@ +export {default as ChooseProductStep} from './ChooseProductStep'; +export {default as ContactDetailsStep} from './ContactDetailsStep'; +export {default as LocationAndTimeStep} from './LocationAndTimeStep';