diff --git a/src/containers/ListingPage/ListingPage.css b/src/containers/ListingPage/ListingPage.css
index e015703e..3e27ea24 100644
--- a/src/containers/ListingPage/ListingPage.css
+++ b/src/containers/ListingPage/ListingPage.css
@@ -1,10 +1,10 @@
@import '../../marketplace.css';
.pageRoot {
- display: block;
+ display: flex;
padding-bottom: 90px;
@media (--viewportLarge) {
- padding-bottom: 24px;
+ padding-bottom: 0;
}
}
@@ -393,6 +393,8 @@
}
.openBookingForm {
+ /* Ensure that mobile button is over Footer too */
+ z-index: 9;
position: fixed;
bottom: 0;
left: 0;
diff --git a/src/containers/ListingPage/ListingPage.js b/src/containers/ListingPage/ListingPage.js
index 1340d879..3e94b998 100644
--- a/src/containers/ListingPage/ListingPage.js
+++ b/src/containers/ListingPage/ListingPage.js
@@ -5,7 +5,6 @@ import { FormattedMessage, intlShape, injectIntl } from 'react-intl';
import { compose } from 'redux';
import { connect } from 'react-redux';
import { withRouter } from 'react-router-dom';
-import classNames from 'classnames';
import config from '../../config';
import routeConfiguration from '../../routeConfiguration';
import * as propTypes from '../../util/propTypes';
@@ -28,6 +27,11 @@ import {
NamedRedirect,
Modal,
ImageCarousel,
+ LayoutSingleColumn,
+ LayoutWrapperTopbar,
+ LayoutWrapperMain,
+ LayoutWrapperFooter,
+ Footer,
} from '../../components';
import { BookingDatesForm, TopbarContainer } from '../../containers';
@@ -182,10 +186,17 @@ export class ListingPageComponent extends Component {
return (
- {topbar}
-
-
-
+
+ {topbar}
+
+
+
+
+
+
+
+
+
);
} else if (!currentListing.id) {
@@ -193,10 +204,17 @@ export class ListingPageComponent extends Component {
return (
- {topbar}
-
-
-
+
+ {topbar}
+
+
+
+
+
+
+
+
+
);
}
@@ -275,8 +293,6 @@ export class ListingPageComponent extends Component {
const editParams = { id: listingId.uuid, slug: listingSlug, type: 'edit', tab: 'description' };
- const listingClasses = classNames(css.pageRoot);
-
const handleBookButtonClick = () => {
const isClosed = currentListing.attributes.closed;
if (isOwnListing || isClosed) {
@@ -343,130 +359,137 @@ export class ListingPageComponent extends Component {
image: schemaImages,
}}
>
- {topbar}
-
-
-
- {actionBar}
-
- {viewPhotosButton}
-
-
-
this.setState({ imageCarouselOpen: false })}
- onManageDisableScrolling={onManageDisableScrolling}
- >
-
-
-
-
-
-
-
-
-
-
- {formattedPrice}
-
-
-
-
-
-
-
{title}
-
-
-
-
-
+
+ {topbar}
+
+
+
+
+ {actionBar}
+
+ {viewPhotosButton}
+
this.setState({ imageCarouselOpen: false })}
+ onManageDisableScrolling={onManageDisableScrolling}
+ >
+
+
-
+
+
+
+
+
+ {formattedPrice}
+
+
+
+
+
+
+
-
this.setState({ isBookingModalOpenOnMobile: false })}
- showAsModalMaxWidth={MODAL_BREAKPOINT}
- onManageDisableScrolling={onManageDisableScrolling}
- >
-
-
{title}
-
-
-
+
+
+
+ {description}
+
+
+ {map}
+
+
+ this.setState({ isBookingModalOpenOnMobile: false })}
+ showAsModalMaxWidth={MODAL_BREAKPOINT}
+ onManageDisableScrolling={onManageDisableScrolling}
+ >
+
+
+ {bookingHeading}
+ {!currentListing.attributes.closed ? (
+
-
+ ) : null}
+
+
+
+
+ {formattedPrice}
+
+
+
+
+
+
+ {!currentListing.attributes.closed ? (
+
+ ) : (
+
+
+
+ )}
-
- {bookingHeading}
- {!currentListing.attributes.closed ? (
-
- ) : null}
-
-
-
-
- {formattedPrice}
-
-
-
-
-
-
- {!currentListing.attributes.closed ? (
-
- ) : (
-
-
-
- )}
-
-
+
+
+
+
+
);
}
diff --git a/src/containers/ListingPage/__snapshots__/ListingPage.test.js.snap b/src/containers/ListingPage/__snapshots__/ListingPage.test.js.snap
index b5af7fb4..2bab23fa 100644
--- a/src/containers/ListingPage/__snapshots__/ListingPage.test.js.snap
+++ b/src/containers/ListingPage/__snapshots__/ListingPage.test.js.snap
@@ -22,254 +22,273 @@ exports[`ListingPage matches snapshot 1`] = `
title="ListingPage.schemaTitle"
twitterImages={Array []}
>
-
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
- listing1 title
-
-
-
-
-
-
-
-
-
-
-
-
-
- listing1 description
-
-
-
-
-
-
-
- listing1 title
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+ listing1 title
+
+
+
+
+
+
+
+
+
+
+
+
+
+ listing1 description
+
+
+
+
+
+
+
+ listing1 title
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
`;