diff --git a/src/forms/EditListingAvailabilityForm/EditListingAvailabilityForm.example.js b/src/forms/EditListingAvailabilityForm/EditListingAvailabilityForm.example.js index 89b9672b..b21d9bf0 100644 --- a/src/forms/EditListingAvailabilityForm/EditListingAvailabilityForm.example.js +++ b/src/forms/EditListingAvailabilityForm/EditListingAvailabilityForm.example.js @@ -26,6 +26,39 @@ export const Empty = { onFetchAvailabilityExceptions: () => console.log('onFetchAvailabilityExceptions called'), onFetchBookings: () => console.log('onFetchBookings called'), }, + availabilityPlan: { + type: 'availability-plan/day', + entries: [ + { + dayOfWeek: 'mon', + seats: 1, + }, + { + dayOfWeek: 'tue', + seats: 1, + }, + { + dayOfWeek: 'wed', + seats: 1, + }, + { + dayOfWeek: 'thu', + seats: 1, + }, + { + dayOfWeek: 'fri', + seats: 1, + }, + { + dayOfWeek: 'sat', + seats: 1, + }, + { + dayOfWeek: 'sun', + seats: 1, + }, + ], + }, }, group: 'forms', }; diff --git a/src/forms/EditListingAvailabilityForm/EditListingAvailabilityForm.js b/src/forms/EditListingAvailabilityForm/EditListingAvailabilityForm.js index 312f2c86..12a076f8 100644 --- a/src/forms/EditListingAvailabilityForm/EditListingAvailabilityForm.js +++ b/src/forms/EditListingAvailabilityForm/EditListingAvailabilityForm.js @@ -84,6 +84,7 @@ EditListingAvailabilityFormComponent.propTypes = { updateError: propTypes.error, updateInProgress: bool.isRequired, availability: object.isRequired, + availabilityPlan: propTypes.availabilityPlan.isRequired, }; export default compose(injectIntl)(EditListingAvailabilityFormComponent); diff --git a/src/forms/EditListingAvailabilityForm/EditListingAvailabilityForm.test.js b/src/forms/EditListingAvailabilityForm/EditListingAvailabilityForm.test.js index 4d27dab5..bb8388e9 100644 --- a/src/forms/EditListingAvailabilityForm/EditListingAvailabilityForm.test.js +++ b/src/forms/EditListingAvailabilityForm/EditListingAvailabilityForm.test.js @@ -32,6 +32,39 @@ describe('EditListingAvailabilityForm', () => { onFetchAvailabilityExceptions: noop, onFetchBookings: noop, }} + availabilityPlan={{ + type: 'availability-plan/day', + entries: [ + { + dayOfWeek: 'mon', + seats: 1, + }, + { + dayOfWeek: 'tue', + seats: 1, + }, + { + dayOfWeek: 'wed', + seats: 1, + }, + { + dayOfWeek: 'thu', + seats: 1, + }, + { + dayOfWeek: 'fri', + seats: 1, + }, + { + dayOfWeek: 'sat', + seats: 1, + }, + { + dayOfWeek: 'sun', + seats: 1, + }, + ], + }} /> ); expect(tree).toMatchSnapshot(); diff --git a/src/forms/EditListingAvailabilityForm/ManageAvailabilityCalendar.js b/src/forms/EditListingAvailabilityForm/ManageAvailabilityCalendar.js index 6b4ebd6b..41efae9f 100644 --- a/src/forms/EditListingAvailabilityForm/ManageAvailabilityCalendar.js +++ b/src/forms/EditListingAvailabilityForm/ManageAvailabilityCalendar.js @@ -15,7 +15,7 @@ import { ensureAvailabilityException, ensureDayAvailabilityPlan, } from '../../util/data'; -import { DAYS_OF_WEEK } from '../../util/types'; +import { DAYS_OF_WEEK, propTypes } from '../../util/types'; import { monthIdString, monthIdStringInUTC } from '../../util/dates'; import { IconArrowHead, IconSpinner } from '../../components'; @@ -510,6 +510,7 @@ ManageAvailabilityCalendar.propTypes = { onDeleteAvailabilityException: func.isRequired, onCreateAvailabilityException: func.isRequired, }).isRequired, + availabilityPlan: propTypes.availabilityPlan.isRequired, onMonthChanged: func, }; diff --git a/src/forms/EditListingAvailabilityForm/__snapshots__/EditListingAvailabilityForm.test.js.snap b/src/forms/EditListingAvailabilityForm/__snapshots__/EditListingAvailabilityForm.test.js.snap index 6c40e151..be2742fc 100644 --- a/src/forms/EditListingAvailabilityForm/__snapshots__/EditListingAvailabilityForm.test.js.snap +++ b/src/forms/EditListingAvailabilityForm/__snapshots__/EditListingAvailabilityForm.test.js.snap @@ -11,6 +11,41 @@ exports[`EditListingAvailabilityForm matches snapshot 1`] = ` "onFetchBookings": [Function], } } + availabilityPlan={ + Object { + "entries": Array [ + Object { + "dayOfWeek": "mon", + "seats": 1, + }, + Object { + "dayOfWeek": "tue", + "seats": 1, + }, + Object { + "dayOfWeek": "wed", + "seats": 1, + }, + Object { + "dayOfWeek": "thu", + "seats": 1, + }, + Object { + "dayOfWeek": "fri", + "seats": 1, + }, + Object { + "dayOfWeek": "sat", + "seats": 1, + }, + Object { + "dayOfWeek": "sun", + "seats": 1, + }, + ], + "type": "availability-plan/day", + } + } dispatch={[Function]} intl={ Object { diff --git a/src/util/types.js b/src/util/types.js index a2a641a1..10ee1b83 100644 --- a/src/util/types.js +++ b/src/util/types.js @@ -190,6 +190,8 @@ const availabilityPlan = shape({ ), }); +propTypes.availabilityPlan = availabilityPlan; + const ownListingAttributes = shape({ title: string.isRequired, description: string,