Skip to content

Latest commit

 

History

History
2399 lines (1931 loc) · 130 KB

CHANGELOG.md

File metadata and controls

2399 lines (1931 loc) · 130 KB

Change Log

We are not following semantic versioning in this template app since any change could potentially be a breaking change for forked customization projects. We are still experimenting with what is a good way to update this template, but currently, we follow a pattern:

  • Major version change (vX.0.0): Changes to several pages and other components. Consider implementing this without merging upstream (we'll provide instructions).
  • Minor version change (v0.X.0): New features and changes to a single page. These are likely to cause conflicts.
  • Patch (v0.0.X): Bug fixes and small changes to components.

Upcoming version 2023-XX-XX

  • [fix] there is was a race condition, if logged in user tries to log in again. #194
  • [fix] Add subdomain wildcard for sentry. (Sentry has started to use subdomains for sending data) #193
  • [add] More tests to cover multiple transaction processes, unit types, and page variants #192
  • [fix] zero commission was throwing error due to 0 being falsy. #191
  • [fix] Inline formatting was wrong for links in PageBuilder and ListingPage descriptions #190

v2.1.1 2023-06-26

  • [fix] New message email template contained an old link that was not in use on the new Template. #187
  • [fix] Add missing translation: StripeConnectAccountForm.missingStripeKey #186

v2.1.0 2023-06-22

  • [fix] Use ternary as picker for site verification for Google Search Console. #184

  • [add] Add support for site verification for Google Search Console. #183

  • [change] Prepare that keywords filter config might come from listing-search asset. #182

  • [fix] localization asset: Add localization asset (it won't be available yet). #180

  • [fix] EditListingDeliveryPanel:

    • Shipping price 0 was shown as undefined.
    • Add safeguard: delivery panel can't handle currency change yet.

    #181

  • [fix] WeeklyCalendar: fix typo

    • AvailableExecptions > AvailableExceptionsInfo
    • NotAvailableExecptions > NotAvailableExceptionsInfo

    #179

  • [fix] SearchPageWithMap: include extra query parameters for onMapMoveEnd callback as they might contain 'keywords'. #178

  • [fix] SectionCarousel was overflown, when scrollbars were enforced. #177

  • [add] Import moment locales dynamically as a fallback. #171

  • [fix] This adds a few fixes to reported bugs

    #176

v2.0.0 2023-06-02

This major release takes configurations from hosted assets.

  • Upgrade sharetribe-flex-sdk

  • Use multi-asset fetch to retrieve config assets on React app:

    • translations: '/content/translations.json',
    • footer: '/content/footer.json',
    • branding: '/design/branding.json',
    • layout: '/design/layout.json',
    • listingTypes: '/listings/listing-types.json',
    • listingFields: '/listings/listing-fields.json',
    • search: '/listings/listing-search.json',
    • transactionSize: '/transactions/minimum-transaction-size.json',
  • Take commission.json asset into use (provider commission) on server routes:

    • /api/transaction-line-items/
    • /api/initiate-privileged/
    • /api/transition-privileged/
  • Show MaintenanceMode component if mandatory configs are not found from hosted assets

  • Add SectionFooter to PageBuilder and use it from FooterContainer.

  • Delete the old Footer component

  • Add defaultMicrocopy.json. It talks about listings instead of Biketribe bikes.

    • The en.json is a good themed starting point to be copied for a translation.json aka Console > Content > Microcopy
    • If translation.json is not set, defaultMicrocopy.json is used instead.

This also includes some bug fixes.

  • ListingPage.duck.js: timeUnit should use 'hour', when necessary.
  • Include a couple of scaled image variants on SearchPage to speed up listing page rendering.
  • PageBuilder: add word-break and hyphens to Link and Headings
  • PageBuilder: don't show spinner if there is content available
  • PageBuilder/SectionContainer: change default element from <div> to <section>
  • EditListingAvailabilityPanel: fix WeekPicker popup causing overflow on mobile screen
  • EditListingWizard: fix wrong default tabs for purchase and restrict editing if both listingType and unitType do not match

Changes / PRs

  • [add] Take hosted configurations into use.

    • Upgrade sharetribe-flex-sdk
    • Use multi-asset fetch to retrieve config assets
    • Add SectionFooter and FooterContainer
    • Delete the old Footer component
    • Take commission.json asset into use (provider commission) on server routes:
      • /api/transaction-line-items/
      • /api/initiate-privileged/
      • /api/transition-privileged/

    #161

  • [fix] ListingImageGallery: Mobile Safari was not showing thumbnail stripe correctly, if the content overflew. #158

  • [change] Update README.md #157

v1.0.0 2023-04-25

This is the official release of Sharetribe Web Template, which combines the features of FTW-daily, FTW-hourly and FTW-product into one configurable web template. It makes it easy to do things like change the default transaction process (it supports two different processes, booking and purchase, out of the box), switch between layout options, add custom fields and filters, and much more, all through simple JSON configurations. The new template also features a new availability management experience, redesigned email notifications, and several other improvements.

Changes on top of the beta release

  • [change] Update default booking transaction process and email templates. #155

  • [change] AuthenticationPage: long email address caused overflow on mobile layout. #154

  • [fix] Fix booking email templates to show correct end date in day-based bookings #153

  • [change] OrderPanel: separate mobile CTA buttons per process type #152

  • [fix] EditListingWizard: fix handling for outdated (old) listings. #151

  • [change] ListingImageGallery: thumbnail stripe was not overflowing correctly on mobile screens #150

  • [change] ListingImageGallery: prefer the aspect ratio of the first image with limits (2/1 ... 4/3) #149

  • [fix] ListingImageGallery: don't use sizes on fullscreen mode. #148

  • [fix] Mobile font-size had degraded to too small. #147

  • [fix] Email templates: Show booking time based on line item type in booking templates #145

  • [change] Listing field of type enum should be explicitly handled as strings. #146

  • [fix] ListingImageGallery was not setting image dimensions aka sizes. #144

  • [change] change the default aspect ratio of listing cards to 4/3. #143

  • [change] Add a new automatic transition to the default-booking transaction process and adjust the timing of the complete transition #142

  • [fix] Email templates: fix layout-breaking condition in purchase templates. 141

  • [fix] Fix indentation in default transaction process email templates. #140

  • [fix] SearchPage error transparency and PageBuilder bg colors of sections. #139

  • [fix] EditListingDetailsForm: set listingFieldsConfig default prop to empty array to fix a bug with initial null value not getting a default in props destructuring. #138

  • [change] Update helmet library from v4.6.0 to v6.0.1. This causes some breaking changes:

    From these, we turned the crossOriginEmbedderPolicy off due to issue with Youtube embed and useDefault flag too as these are tracked explicitly in csp.js

    #137

  • [change] Split redirection use case away from REACT_APP_SHARETRIBE_USING_SSL into SERVER_SHARETRIBE_REDIRECT_SSL environment variable. #136

  • [change] Add shutdown process for server when receiving close signals. #135

  • [fix] SearchPages: show message if date range is invalid and ignore it. #134

v1.0.0-beta 2023-03-29

This is the Sharetribe Web Template, which combines the features of FTW-daily, FTW-hourly and FTW-product into one configurable web template. It makes it easy to do things like change the default transaction process (it supports two different processes, booking and purchase, out of the box), switch between layout options, add custom fields and filters, and much more, all through simple JSON configurations. The new template also features a new availability management experience, redesigned email notifications, and several other improvements.

For now, this is a beta release: the official Docs site doesn't yet mention the new template. In the coming weeks, the new Template will replace Saunatime as the Template that powers the Demo sites, and the Docs will be updated to reflect the fact that this is the new default Template.

Changes

  • [change] Comment out additional listingTypes. Those are useful for testing purposes, but multiple listingTypes are not fully supported on search page yet. #130

  • [change] Add new email templates to default processes. #122

  • [fix] add fonts.googleapis.com to CSP connect-src. #129

  • [fix] search config for dates uses dateRangeMode not mode. #128

  • [Change] Rename 'listingExtendedData' and its variants to 'listingFields'. #127

  • [Change] Rename 'tire-size listing fields as 'tire' and update README.md. #126

  • [Change] Update README.md. Add links to beta version of Docs. #125

  • [fix] Heading was not imported correctly after changes to styling. #124

  • [change] rename some color-related CSS Properties. #122

  • [fix] Do not show stock in EditListingWizard if stockType is 'oneItem'. #121

  • [change] Update README.md and some code comments. #120

  • [delete] remove outdated translation files (fr.json, es.json, de.json). We'll introduce them again, when they are updated to match the current set of translation keys. #119

  • [fix] CheckoutPage: save unitType from publicData, not unitType in listingType config. #118

  • [fix] typos, naming and improve the quantity handling if something is configured wrongly. #117

  • [change] Pages/SectionCarousel: show next card a bit on mobile (fix margin-right) #116

  • [change] refactor CSS Properties for Grey colors (remove --matterColor*) #115

  • [change] Refactor configurations to better work with upcoming config assets.

    • SearchPage layout: 'map' and 'grid'
    • SearchPageWithList renamed as SearchPageWithGrid
    • ListingPage layout: 'carousel' and 'coverPhoto'
    • ListingPageFullImage renamed as ListingPageCarousel
    • ListingPageHeroImage renamed as ListingPageCoverPhoto
    • Also other config files were affected

    #114

  • [fix] Remove dublicate ids from styleguide page. #113

  • [change] Rename global duck files to start with lower case letter. #112

  • [change] Update tests to use React Testing Library instead of Enzyme. #28

  • [change] Small changes to Signup form according to review feedback. #111

  • [change] Update code comments in configMaps.js #110

  • [fix] EditListingDeliveryPanel: H3 import was missing #109

  • [fix] Fix back-navigation after successful payment and notification dots for booking process. #108

  • [fix] Terms: add translation key, NotFoundPage: fix tests. #107

  • [change] Make old pages to use LayoutComposer. Remove old layout components:

    • LayoutSingleColumn (moved under LayoutComposer)
    • LayoutSideNavigation (moved under LayoutComposer)
    • LayoutWrapperTopbar
    • LayoutWrapperMain
    • LayoutWrapperSideNav
    • LayoutWrapperAccountSettingsSideNav (moved under LayoutComposer)
    • LayoutWrapperFooter

    #106

  • [add] Add isRequired handler for CustomFieldMultiEnum. #105

  • [add] Add keyword search option ot NotFoundPage. #103

  • [add] Add PrimaryButtonInline and SecondaryButtonInline. Refactor utility-classes away from Buttons. #102

  • [add] Add Heading and H1...H6 components to main app. These are separate from PageBuilder. So that Pages could use different fonts if needed. #97

  • [add] Add --contentMaxWidth and --contentMaxWidthPages. #101

  • [change] Improve error handling on PageBuilder and LandingPage. #100

  • [add] Add privacy policy modal to sign up page and make it mandatory to click checkbox. This was suggested as more legally clear way that users have noticed the terms. #99

  • [change] Handle situations, where tx process name is unrecognized. #98

  • [change] change enquiry/enquire to inquiry/inquire. #94

  • [change] Refactor remaining via.placeholder.com references to use picsum.photos instead. #96

  • [change] add multiple placeholder texts for custom listing fields. #93

  • [fix] Some heading style fixes and lineBreak fixes to microcopy. #92

  • [delete] Add LinkedLogo and use it in different Topbars. #91

  • [delete] Remove unused microcopy keys from en.json #90

  • [change] Rename default transaction process and associated files. #88

  • [change] New font (apple-system & 'Inter') and all kind of changes related to that. #73

  • [fix] When time zone changes, exceptions should be fetch again. (Query boundaries change.) #87

  • [add] Update translations (en.json). We'll change these later, as these follow biketribe theme. #86

  • [add] Add BookingLocationMaybe section into the TransactionPage.js #85

  • [change] Add listingType which contains transactionType. Defined in configListing.js #84

  • [delete] Remove unnecessary code and translation keys. #83

  • [change] Change of terminology: enquire to inquire and enquiry to inquiry. Process change happens later. #82

  • [fix] Update styleguide examples that produced errors. #81

  • [fix] WeeklyCalendar redirect should use start of week instead of today. #80

  • [fix] WeeklyCalendar should set currentMonth initially to intialVisibleMonth. #79

  • [fix] WeeklyCalendar had bugs in navigation buttons. #78

  • [add] Add environment variable to prevent data loading in SSR #77

  • [change] Refactor EditListingWizard CSS #76

  • [change] Refactor CSS variables and rename contextHelpers.js as uiHelpers.js #75

  • [change] Availability management has been changed so that default view is Weekly calendar.

    • All the times are shown in listing's time zone
    • EditListingAvailabilityPlanForm handles the weekly default schedule
    • EditListingAvailabilityExceptionForm makes it possible to add exceptions to the plan
    • settings.verbose prints some debug info to browser's console (src/config/settings.js)

    #74

  • [change] Fixes: image variant creation, FieldDateRangeInput gets isDaily flag instead of line-items, BookingTimeForm should show error message. #72

  • [change] TransactionPage: quantity integer was not parsed early enough. #71

  • [change] Move src/util/transaction*.js files to new directory src/transactions/ #70

  • [change] ResponsiveBackgroundImageContainer: allow undefined image (use marketplaceColor). #69

  • [change] Update emails in product process and make changes according to bug reports and change requests.

    • Add extra info microcopy in specific states
    • Add delayed refresh for transaction entity after makeTransition call.
    • ListingPage: Huge stock can't be rendered as select options (max 100 limit)

    #68

  • [change] Update processes

    • Update email templates: remove outdated link to Transactionpage
    • Update email templates: to work with different line-items (hour, day, night)
    • Add new state to booking: expired (use it instead of declined)

    #67

  • [change] Fix for buggy situation when showStock flag is false. #66

  • [change] Update styleguide and couple of translations. #64

  • [change] Improve listingExtendedData config / includeForTransactionTypes handling. #63

  • [change] Refactor microcopy aka translations and pass arguments to them. #62

  • [change] Add fixes, remove some legacy code, and improve code comments. #61

  • [change] Rename default processes, and the references in code and translations.

    • Reorder actions that decline or cancel booking in reference booking process
    • Add update-protected-data action to enquiry and payment transitions
    • This also adds couple of updated translations for biketribe

    #60

  • [change] Update styling of Inbox tabs and InboxItem. #59

  • [fix] Severa improvements and bug fixes. Most notable ones:

    • Reduce transaction types to only 1
    • CheckoutPage: the new listingTitle was only meant for mobile layout
    • util/search.js: isStockInUse had a bug

    #58

  • [fix] Initial versions of new supported default transaction processes. #57

  • [change] change ListingExtendedData config includeForProcessAliases to includeForTransactionTypes and remove isBookingUnitType in favor of isBookingProcessAlias. #56

  • [fix] Bug fixes and refactoring: AuthenticationPage/EmailVerificationInfo.js had bugs, StripeConnectAccountInfo caused warnings. #55

  • [fix] ListingPage: the title of section details should not be visible if no details is set. #54

  • [add] Add flag: enforceValidTransactionType for listing query on SearchPage. #53

  • [fix] ListingImageGallery didn't get variantPrefix due to buggy mergeConfig. #51

  • [fix] Update configListing.js to more closely match Biketribe configs. Also fix label in ListingPage/SectionDetailsMaybe and add grid for secondary filter panel. #50

  • [fix] TransactionPage/enquiry: timeSlot query was missing extra parameter #49

  • [change] Rename src/config/settingsApp.js as src/config/settings.js #48

  • [change] Improve transaction type support:

    • Restrict searches to valid transactionTypes, transactionProcessAlias, and unitType
    • Note: add search schemas with Flex CLI!
    • Add more transactionTypes to make testing easier

    #47

  • [change] CheckoutPage: add location for bookingable listings too. #46

  • [change] Make OrderPanel to use React Portal instead of rendering within app's DOM. #45

  • [add] listing extended data:

    • Sanitize configured custom fields
    • Change schemaOptions to work with objects containing 'option' and 'label'.
    • Use transactionType in EditListingWizard (active tab feature)

    #44

  • [change] Biketribe theming: update links in footer and add social media sharing images. #43

  • [change] Biketribe theming: lots of UI related changes, but also some refactoring of components. #42

  • [change] Refactor configurations:

    • Split defaultConfig to sub files based on context

      • brandingConfig sets marketplaceColor, logo, brandImage, social sharing graphics
      • layoutConfig sets layouts for SearchPage and ListingPage
      • listingConfig sets extended data config for listing
      • mapsConfig sets configurations for map provider and location search
      • searchConfig sets mainSearchType, default filters and sort config
      • stripeConfig sets Stripe publishable key and other Stripe related configs
      • transactionConfig creates a preset for selected transaction: process name, alias, unitType, etc.
    • CookieConsent component is removed!

      • GA is the only integration that needs cookie consent to our best knowledge
      • The existing Cookie Consent didn't seem to meet EU requirements anymore.
    • GA script is set in src/util/includeScripts.js file instead of server/renderer.js

    • Custom icon for map marker removed (it was not used).

    • Renaming:

      • REACT_APP_CANONICAL_ROOT_URL > REACT_APP_MARKETPLACE_ROOT_URL
      • canonicalRootURL > marketplaceRootURL
      • siteTitle > marketplaceName

    #41

  • [change] Split to defaultConfig.js and appSettings.js and move default configs to React Context. #39

  • [change] SearchPage changes: cleaning some shared code and add Dates filter.

    • Add Dates filter. It works with listings that have different time zones in use.
      • Uses prolonged date range: start=ETC-14h & end: ETC+12
    • Clean SearchPage variants: Rename SearchPage.helpers.js as SearchPage.shared.js and move several shared functions to this shared file.

    #35

  • [change] OrderPanel: update consistent look-and-feel for the order forms.

    • Remove unused FieldBirthdayInput component
    • Remove unused timeZone parameter

    #34

  • [add]TimeRange component. (Remove BookingTimeInfo from shared components) #30

  • [change]Rename the default booking process: flex-booking-default-process. #29

  • [change] ListingPage: remove filtersConfig. Use listingExtendedData & defaultFilters instead. #27

  • [change] SearchPage: remove filtersConfig. Use listingExtendedData & defaultFilters instead. #26

  • [add] EditListingWizard: panels get picked based on selected transaction process. In addition, submit button translations and pricing panel are refactored. #23

  • [add] EditListingDetailsPanel: add more custom extended data fields and initialize form accordingly. Transaction process alias can be set once (i.e. before listing draft is created). #24

  • [change] Extract getStateData to own page-specific files. #21

  • [add] marketplace-custom-config.js: add listingExtendedData config. #22

  • [change] FieldDateRangeInput: rename unitType as lineItemUnitType in DateRangeInput #20

  • [change] InboxPage: use React Intl (ICU) select syntax for tx status. #19

  • [change] Refactor orderData passing to checkout page, pass processAlias to CheckoutPage thunk functions and unitType variable usage. #17

  • [add] Refactor unitType usage and make OrderBreakdown work with it. #15

  • [add] ListingPage: start enquiry from process found from public data. #14

  • [add] EditListingDetailsPanel: transactionProcessAlias and unitType

    • unitType could be 'item', 'day', 'night', 'hour'
    • Remove EditListingFeaturesPanel & EditListingFeaturesForm
    • Remove EditListingPoliciesPanel & EditListingPoliciesForm

    #13

  • [add] InboxPage: support for multiple processes. #12

  • [add] TransactionPage: support for multiple processes. #11

  • [add] Add getTransitionsNeedingProviderAttention to transcation.js and use it in user.duck.js #10

  • [change] CheckoutPage: transitions get transition name and isPrivileged as params. #9

  • [change] UI facelift for field elements, including text field, textarea and select. #1

  • [change] Refactor action button transition thunks and pass transition name to it. #8

  • [add] Another process graph: src/util/transactionProcessBooking.js #4

  • [change] Refactor TransactionPage title construction and translation keys. #3

  • [fix] Temporarily disallow Node v17, since it causes issues with dependencies. #7

  • [change] Extract product process graph to separate file and change transaction.js

    • process graphs are in separate files
    • transaction.js is importing supported processes and exporting "getProcess" function for selecting process in UI components
    • transitions and states are accessible through selected process

    #2

v11.1.0 2023-02-28

  • [fix] AuthenticationPage.duck.js: had wrong asset name. #173

Updates from upstream (FTW-daily v10.1.0)

  • [change] remove background-color from images (to allow opacity). #1590
  • [change] improve error handling possibilities on PageBuilder. #1589
  • [fix] AuthenticationPage.duck.js: had wrong asset name. #1588
  • [change] P.js: remove requirement for mandatory children. #1587

v11.0.0 2023-02-14

Updates from upstream (FTW-daily v10.0.0)

  • [add] This adds support for page asset files that can be created in Console. These asset files are taken into use for

    • LandingPage
    • TermsOfServicePage
    • PrivacyPolicyPage
    • AboutPage
    • and other static pages can also be created through Console (they'll be visible in route: /p/:asset-name/)

    #1520

v10.1.0 2023-02-07

Updates from upstream (FTW-daily v9.1.0)

  • [change] Norway's stripe config should use NOK not EUR. #1579

  • [delete] Update README.md after changes in [#1555]. #1569

  • [change] Added some dependabot updates earlier: passport-0.6.0, loader-utils-2.0.4, decode-uri-component-0.2.2 Note: Passport-0.6.0 changed login and logout parameter list.

  • [change] Update Browserlist db / caniuse-lite. #1567

  • [change] Update minimum Node version to >=16.18.0. (v14.15 had problems with some libs and v14 support ends soon.) #1566

  • [delete] Remove unnecessary polyfills (dependencies might still use these)

    • array-includes
    • array.prototype.find
    • object.entries
    • object.values
    • Number.parseFloat, Number.parseInt, Number.isNaN

    #1565

  • [add] Add the cross-env package to better support Windows command prompts #1555

v10.0.3 2022-10-17

Updates from upstream (FTW-daily v9.0.2)

  • [change] Add links to free Privacy Policy and Terms of Service templates #1553

v10.0.2 2022-08-30

Updates from upstream (FTW-product v10.0.2)

  • [fix] Use sharetribe-scripts v6.0.1. Fixes for

    • GENERATE_SOURCEMAP = false
    • async Redux Thunks

    #1546

  • [fix] Add cookie_flags and relax google analytics domain #1538

  • [fix] the import of customMediaQueries.css was somehow missed with these components: FieldReviewRating, SearchFiltersSecondary and TopbarMobileMenu. #1537

v10.0.1 2022-07-11

  • ListingPage.test.js needed an update due to missing 'stock' in includes.

v10.0.0 2022-07-11

This is a major release since it includes a major update to sharetribe-scripts aka our fork of Create React App.It includes major update to Webpack (v4 > v5) and PostCSS (v7 > v8). These caused some advanced CSS syntax to be invalid - and therefore some changes must be done to CSS files.

  • CSS Property Sets are deprecated and the related file is removed from the codebase
  • Custom media queries file need to be imported in all the files, that use them.

Read more from PR: sharetribe/ftw-daily#1531

Changes:

  • [change] sharetribe-scripts is updated to v6.0.0. This causes a new major release for FTW templates. Because most of the CSS files need to be updated! #1531

  • [change] ImageCarousel uses react-image-gallery. It renders all the images early on and supports touch swipes. #1529

  • [fix] Fixing a small typo. #1518

[v9.3.1] 2022-05-19

  • [fix] undefined REACT_APP_GOOGLE_ANALYTICS_ID caused an error. #150

v9.3.0 2022-05-19

Note: this caused an error. Use v9.3.1 instead.

  • [fix] undefined REACT_APP_GOOGLE_ANALYTICS_ID caused an error. #149

Updates from upstream (FTW-daily v8.6.0)

  • [change] Google Analytics: remove Universal Analytics and start supporting GA4.

    NOTE: you need to update the Google Analytics id to GA4's id (starting with 'G-' prefix).

    #1508

  • [change] Update some outdated dependencies. #1514

v9.2.0 2022-05-16

  • Add support for hosted translations. (PR made in upstream repo: FTW-daily)

  • [delete] Remove old unused translation keys #146

Updates from upstream (FTW-daily v8.5.0)

  • [add] Add support for hosted translations.

    • This PR fetches "content/translation.json" from a new Asset Delivery API. The file is editable through the Flex Console.
    • It also adds all the missing translation keys to existing non-English translation files. This means that those files might now include messages in English.

    #1510

  • [delete] Remove old unused translation keys. #1511

v9.1.2 2022-03-16

Updates from upstream (FTW-product v9.1.2)

  • [fix] Process graph had an error: provider notification about dispute being canceled was not sent to provider but customer. #135
  • [fix] CheckoutPage: add missing link for fallback error, when submitting. #137
  • [fix] CheckoutPage: if the saveAfterOnetimePayment checkbox is checked and then unchecked, the value is already an array. #136

Updates from upstream (FTW-daily v8.4.1)

  • [fix] Portal version of Modals couldn't use 100vh on mobile Safari. Safari changes the window's height based on if the location bar is squeezed or not (and that depends on scroll-effect). #1501
  • [fix] Setting multiple environment variables in Windows requires using the set command before each individual variable. Updated the 'for windows users' section in documentation. #1491
  • [add] Code comment about "REACT_APP" prefix in environment variables. #1492

v9.1.1 2022-01-24

Updates from upstream (FTW-product v9.1.1)

  • [fix] A full-page refresh on product when stock = 1 causes 500 error. SSR gets change request automatically from Final Form/FromSpy, and therefore window.fetch gets called on the server. #133
  • [fix] Add a missing return statement on ProductOrderForm. The code path is relevant only for listings that are created outside of EditListingWizard. #127

v9.1.0 2021-12-02

Updates from upstream (FTW-product v9.1.0)

  • [fix] Mobile safari zooms if input-related elements have smaller font-size than 16px. This updates textarea and select element styles too. #1489

  • [fix] Dependabot: Bump passport-oauth2 from 1.5.0 to 1.6.1 #1487

  • [fix] Fix bugs in checkout process:

    • Submit button was enabled prematurely for onetime payments
    • Toggling between default card and onetime payment flows was not working correctly in case of error (e.g. network error).
    • Calling Stripe.confirmCardPayment when status is requires_capture is unnecessary.

    #1486

  • [change] Update many dependencies. See full list in the package.json changes in the PR. #1483

  • [fix] Double click issue. Show dedicated message, when current user doesn't have a pending email address, but there's a verification error. #1485

  • [change] Update comment about how scrollIntoView works with links using hash. #1484

  • [fix] Account pages: mobile tab navigation should only scroll horizontally #1481

  • [fix] Temporarily disallow Node v17, since it causes issues with dependencies. #1479

  • [fix] Fix modal close button text/icon alignment #1476

v9.0.1 2021-11-26

  • [fix] Fixes issue with default payment card that was created by PR #111. Essentially, before confirming PaymentIntent, we now check if the PaymentIntent has already been confirmed. #121
  • [fix] StripePaymentForm: add missing optional chaining: defaultPaymentMethod?.id #120
  • [fix] Temporarily disallow Node v17, since it causes issues with dependencies. #119

v9.0.0 2021-09-30

This is the first release of FTW-product. However, it is build on top of FTW-daily (v8.0.0) - so, we start versioning from v9.0.0.

  • We have done pretty big changes to directory structure:

    • Configuration files are moved under src/config/
    • Route configuration is moved under src/src/routing/
    • Page-specific UI components are moved under page-directory (incl. forms)
  • SearchPage and ListingPage have 2 layout variants that can be taken into use.

  • Transaction process has been changed

  • Listing's use stock management

Read more from https://sharetribe.com/docs/ftw-introduction/ftw-product/

  • [change] ListingPage: improve image gallery styles #115

  • [add] Add message about no results with current query and reset filters button. 114

  • [fix] Small bug fixes and naming changes. 113

  • [fix] CheckoutPage: don't enable submit button when selecting onetime payment. In addition, pass payment method id to stripe when re-trying with saved payment method after onetime payment. #111

  • [fix] searchMode is only relevant for multi-enum schema. 112

  • [fix] Fix "Out of Stock" UI flash before current stock is loaded 103

  • [change] review bugs and change requests.

    • SearchPage: if stock is used, add minStock filter
    • CheckoutPage: remove payment info about provider acceptance needed.
    • ProductOrderForm: hide quantity and deliveryMethod fields if stock = 0
    • ProductOrderForm: add validators and focus+show error msg, if submitting too early.
    • PrimaryButton: change text color for disabled mode
    • EditListingPricingPanel: if stock is 0, use that (boolean bug)
    • ActivityFeed: 2 translations for deliveries (shipped vs picked up)

    #110

  • [change] SearchPage: update schema title to include keywords. #108

  • [change] Line-items: calculate commission from base price. #106

  • [change] Update translations (en.json) to match Sneakertime concept. #104

  • [fix] TransactionPanel: smaller gap between OrderBreakdown and title. #107

  • [fix] EditListingPricingPanel: default stock value is 1. #105

  • [fix] SearchPage: fix bugs and review issues #102

  • [fix] Fix order after enquiry #101

  • [fix] Fix missing author and stock info in OrderPanel on the TransactionPage #100

  • [fix] Update stock from 0 (the value was considered false). #99

  • [change] Review changes to some of the pages - part 2. #98

  • [change] Review changes to some of the pages. #96

  • [change] Rename listing page variant config and file names #95

  • [change] Add listingManagementType config that replaces the more specific enableAvailability config #93

  • [add] Update schema for ListingPage component #88

  • [fix] Fix iphone layout for TopbarMobileMenu with spacer div. #91

  • [fix] Fix stretched mobile logo on iOS/Safari #90

  • [add] Add ActionBar component to ListingPageProduct. #87

  • [add] ListingPage: add column containers and other layout tuning. #86

  • [add] ProfilePage: add showAuthoInfo flag for listing cards. #84

  • [add] ProfilePage: fetch correct image aspect ratios for listing cards. #83

  • [fix] EditListingPhotosPanel: refactor and fix photos panel (uploading showed images twice). #79

  • [fix] EditListingPage.duck.js: updating stock should not affect listing creation call. #81

  • [fix] ManageListingPage: fix the position of loading text #80

  • [add] Add app icons and fix height of mobile logo #78

  • [change] Update translation for SectionFilteredSearches.filteredSearch #77

  • [add] Update billing details from shipping address by default when changing payment method to one-time payment. #76

  • [change] Moved LandingPage-related sections under its directory, added SectionFilteredSearches component and removed unused SectionThumbnailLinks component. #75

  • [add] Stock info and link to correct tab included to ManageListingCard. #74

  • [change] Social media images updated for Sneakertime. #72

  • [change] Marketplace colors updated for Sneakertime. #71

  • [change] Landing page Hero and How it works sections updated. #70

  • [fix] EditListingPage: use correct image aspect ratio for listing images #69

  • [add] TransactionPage: add DisputeModal component. #68

  • [add] TransactionPanel: show shipping and pickup addresses. #66

  • [change] Update OrderBreakdown line-items and move breakdown estimation to OrderPanel. #67

  • [fix] server/api-util/lineItems.js: 'orderData' instead of 'order'. #65

  • [change] Update transaction process and handle stockReservationQuantity transition parameter. #60

  • [change] InboxPage: update inbox-items and provider notifications (red dots) #63

  • [change] CheckoutPage: move error message generation to a dedicated function. #61

  • [add] TransactionPage: use custom image variant for listing. #62

  • [add] Add 'line-item/pickup-fee' and update OrderBreakdown component #59

  • [fix] Add uncommitted change to TransactionPage: onSubmitOrderRequest #58

  • [change] Rename bookingProcessAlias as transactionProcessAlias. #57

  • [change] Rename bookingUnitType as lineItemUnitType. #56

  • [change] Rename BookingPanel as OrderPanel. #55

  • [change] Rename BookingBreakdown as OrderBreakdown. #54

  • [change] CheckoutPage: add shipping details to form, change bookindData to orderData, and add other UI changes. #52

  • [fix] ManageListingPage: review changes #51

  • [fix] SearchPage: review changes #50

  • [fix] util/dates.js: Fix earlier copy-paste error. #49

  • [fix] Add missing heading for reviewed transaction on TransactionPage. #48

  • [change] Transaction process has changed. This adds changes to util/transaction.js #31

  • [change] Changes to ManageListingsPage: use AspectRatioWrapper on ManageListingCard,small layout changes and a new overlay for out of stock items. #46

  • [change] Footer translation keys updated. #47

  • [change] Footer updated. #45

  • [add] Add category values. #44

  • [change] Favicon updated. #43

  • [change] siteTitle and PostalAddress updated. #42

  • [change] Top bar translation keys updated. #40

  • [change] Add UI for adjusting stock to pricing panel in EditListingWizard. This doesn't store any data related to stock yet! #39

  • [change] Privacy Policy and Terms translation keys updated. #37

  • [fix] Fix padding problem in EditListingWizard by handling the paddings in one place. #34

  • [change] Use AspectRatioWrapper on EditListingPhotosPanel. #33

  • [add] ListingPage is split into 2 variants: ListingPageBooking and ListingPageProduct. #32

  • [add] Add EditListingDeliveryPanel. #29

  • [change] Remove EditListingFeaturesPanel, EditListingPoliciesPanel and EditListingAvailabilityPanel from EditListingWizard because they are not used in FTW-product template. #30

  • [add] SearchPage is splitted to 2 variants SearchPageWithMap and SearchPageWithList.

    • MainPanel (subcomponent of search page) is removed.
    • There's a new component, AspectRatioWrapper, and configuration that can be used to fetch custom listing image variants.
    • API supports nowadays additional sorting on top of keyword filtered listings. SortBy is configured work with this setup.

    #23

  • [change] Rename EditListingDescriptionPanel to EditListingDetailsPanel and add more generic CustomFieldEnum for showing enum fields like category, size and brand. #27

  • [remove] Articles in docs directory was just pointing Flex Docs. #21

  • [change] Update functions in util/dates.js #19

  • [add] Add moment-timezone library on dates.js. Reorder & group util/dates functions. Remove unnecessary spread of moment library imports. #18

  • [change] Make Topbar search configurable and use keyword-search there #20

  • [change] Move stripe related forms and forms directory #17

  • [change] Remove PayoutDetailsForm and rename some functions #16

  • [change] Move BookingDatesForm under BookingPanel #15

  • [change] Regroup examples in styleguide using prefixes #14

  • [change] Group page specific Styleguide examples by page name #13

  • [change] Move more components under other components and pages #12

  • [change] Move forms under the page directory they are used in #11

  • [change] Components and forms that are used only in the SearchPage are nested under the page directory. #9

  • [change] The containers/index.js file is now removed and the components imported directly to improve code splitting. #8

  • [change] Move EditListingWizard et al. under EditListingPage #7

  • [change] Components and forms that are used only in the TransactionPage (ActivityFeed, ReviewModal, ReviewForm, TransactionPanel, SendMessageForm) are moved under the TransactionPage. #6

  • [change] Forms that are used only in the AuthenticationPage (ConfirmSignupForm, LoginForm, SignupForm) are moved under the AuthenticationPage. #5

  • [change] Routing configuration and components are moved to a separate src/routing directory. #4

  • [change] Configuration files are moved to a separate src/config directory. The main config file is still imported with the same path as there is the index file in the directory. #2

  • [remove] OrderDetailsPanel and Discussion components were not used. #1

v8.3.0 2021-09-22

  • [change] Increase input font size on mobile to avoid Mobile Safari zooming in when focusing on inputs. #1473
  • [change] Update browserlist data to match modern browsers. #1468
  • [fix] Font-size was too big for Stripe Elements on small screens on PaymentMethodsForm. #1471
  • [fix] Remove unnecessary language import: fr.json #1469
  • [fix] Font-size for Poppins font was too big for Stripe Elements on small screens. #1465
  • [change] Updates to some of the libraries. React Intl had a breaking change v3 -> v5. #464
  • [fix] Adblockers might block Google analytics (window.ga) and cause an error. #1462

v8.2.0 2021-08-06

  • [change] Update lodash version number in package.json resolutions section. #1459
  • [change] Dependabot update: url-parse (v1.5.1) #1436
  • [change] Dependabot update: lodash (v4.17.21) #1437
  • [change] Dependabot update: tar (v4.4.15) #1457
  • [change] Dependabot update: ws (v6.2.2) #1446
  • [change] Dependabot update: hosted-git-info (v2.8.9) #1438
  • [change] Dependabot update: trim-newlines (v3.0.1) #1449
  • [change] Update sharetribe-scripts to version 5.0.1 which improves the instructions that are shown after running yarn build command. #1458
  • [fix] Remove unused dep-resolution: handlebars. #1456
  • [fix] PriceFilterPopup: filter popup is not closing when clicking outside on Safari. #1455
  • [fix] Add missing helper: isNumber. Used when Number.MAX_SAFE_INTEGER is reached. #1453
  • [fix] minutesBetween: remove thrown an error on negative diff. #1444
  • [fix] TransactionPanel: fix typo #1451
  • [fix] searchMode (has_all/has_any) disappeared, when search-by-moving-the-map was used. #1443

v8.1.1 2021-04-20

  • [change] Update jose to v3.11.4 #1433
  • [add] Update fr.json, es.json and partially de.json #1431
  • [fix] currency conversion should not expect that env-variable is set. #1425
  • [fix] LoadableComponentErrorBoundary should be used in prod, not in dev-mode with hot-loading.#1429
  • [fix] currency for Poland (PLN) #1427

v8.1.0 2021-03-11

  • [change] Specify required Node.js versions in package.json and update the node version used in CircleCI. Currently, the required Node.js version comes from jose package which is used with social logins. #1418
  • [fix] enforce upper case for currency and improve error message for it. #1417
  • [add] Add LoadableComponentErrorBoundary for handling ChunkLoadErrors with error boundary. #1416

v8.0.0 2021-02-17

This major release adds support for code-splitting using Loadable Components. At this point, we added route-based code splitting, which meant changes to routeConfiguration.js and how "loadData" & "setInitialValues" functions are defined and passed to routeConfiguration. Read more from Flex Docs and related pull requests:

  • [fix] Remove unintended Lodash usage, unspecified window-scope calls and unused vars #1413
  • [add] Route-based code splitting. This is done against sharetribe-scripts v5.0.0 using Loadable components. Read more from the pull request. #1411

v7.3.0 2021-01-13

  • [fix] Move well-known/* endpoints related to OIDC proxy setup from apiRouter to new wellKnownRouterso that they can be enabled outside the basic auth setup. It also makes it simpler to set the identity provider url, because we can drop the /api part of the path. Also, rename the RSA_SECRET_KEYto RSA_PRIVATE_KEY for consistency. #1399
  • [fix] Make sure that the verify email API endpoint has been called successfully before redirecting the user away from EmailVerificationPage. #1397

v7.2.0 2020-12-16

  • [add] Add helper functions for setting up your own OIDC authentication and using FTW server as proxy when needed. #1383

v7.1.0 2020-12-15

  • [change] Handle entity update with sparse attributes. #1392
  • [change] Remove react-google-maps dependency. It has not been maintained for 3 years. From now on, we use Google Maps API directly. However, the default map provider is still Mapbox. #1389
  • [fix] Pass metadata through sanitizeUser function. #1391
  • [fix] Call for the same page caused unnecessary rendering #1388
  • [fix] Fix Google Maps default centering if no bounds or center is given. #1386
  • [add] Add timeout and other options for getCurrentLocation call. #1385
  • [fix] Fix FieldCheckbox validation on blur event on Firefox. #1384

v7.0.0 2020-11-17

This major release renames all the CSS files. If you have made custom components or customized existing ones, you should read the related PR for more information.

  • [change] Update sharetribe-scripts (our fork of create-react-app) to v4.0.0. In addition to changes that CRA@v4 brought along,

    • We started to use*.module.css naming pattern for styles that use CSS Modules preprocessor.
    • We also turned on live CSS Custom Properties (CSS Variables).

    Read the PR for more info: #1374

v6.5.0 2020-11-16

  • [add] Add support for Google login. This works in the same way as Facebook flow so you can check the Facebook PR for the more details. #1376
  • [fix] Routes component got double rendered due to Redux container HOC. Because navigation could happen twice, loadData was also called twice. #1380
  • [fix] 401 return code when rendering on SSR. #1379

v6.4.2 2020-10-30

  • [fix] Fix the issue with form on AuthenticationPage not showing on smaller screens when using Safari as browser. #1377

v6.4.1 2020-10-20

  • [add] Add new Stripe countires Bulgaria, Cyprus, Czech Republic, Malta and Romania to the StripeConnectAccountForm. Also reorder BANK_CODE & BRANCH_CODE in UI to more logical order. #1371
  • [fix] Don't pass protected data key through ConfirmSignupForm if protected data is empty. #1370
  • [add] Update French translation file (Spanish and German translations have still missing keys). #1369
  • [fix] Pass additional values from ConfirmSignupForm forward as user's protected data. #1368

v6.4.0 2020-10-14

  • [add] Add Facebook login as a first step towards supporting social logins and SSO in FTW. This PR introduces new endpoints createUserWithIdp and loginWithIdp and strategy for logging in with Facebook. See the PR for the more detailed view of the changes. #1364
  • [fix] Fix missing proptype warnings in TransactionPage and TransactionPanel tests. #1363
  • [fix] Improve error handling by passing error details forward instead of creating a new error that hides the details when making API call to FTW server. #1361
  • [fix] Remove duplicate page schema from body. #1355

v6.3.1 2020-08-19

  • [fix] Fix popup-button in SelectSingleFilterPopup.css and adjust Footer with correct baselines. #1353

v6.3.0 2020-08-19

  • [change] We decided to change the default font to Poppins. #1349
  • [change] Update path-to-regexp to v6.1.0 #1348
  • [change] Update Helmet to v4.0.0. Show warning if environment variable REACT_APP_CSP is not set or if it's set to 'report' mode in production environmet. Set REACT_APP_CSP to 'report' mode by default in .env-template file. #1347
  • [change] In StripeConnectAccountForm show error message from Stripe if there is one when fetching account link. #1346

v6.2.0 2020-08-12

This change set was originally released as a patch update 6.1.2 but after reconsideration it's released as a minor update 6.2.0.

  • [fix] remove typo #1343
  • [change] Request custom image variants for avatar #1342
  • [change] Some dependency updates #1337
  • [fix] Use Stripe's confirmCardPayment function instead of deprecated handleCardPayment to confirm PaymentIntent. In addition to the rename, the arguments passed to handleCardPayment are sligthly different. Otherwise, these changes should not affect the behavior of the function. #1339

v6.1.1 2020-07-21

  • [fix] Fix config script for NodeJS v14.5.0 #1327

v6.1.0 2020-07-01

  • [fix] MainPanel: search filter bug. Address and bounds are handled outside of MainPanel, URL params should be trusted instead of values stored to state. #1320
  • [fix] small typo. #1319
  • [fix] Fix typo (which is copy-pasted in 4 files). #1318
  • [add] Update French translation file (Spanish and German translations have still missing keys). #1316
  • [fix] Sync bookingUnitType variables and update comments. Client app's API (proxy) server needs to know about unit type. #1317

v6.0.0 2020-06-25

  • [change] Use privileged transitions for price calculation by default and update the process alias. #1314
  • [add] Add client secret enquiry to 'yarn run config' script #1313
  • [change] Add UI support for flexible pricing and privileged transitions. Note that this requires updating the booking breakdown estimation code that is now done in the backend. #1310
  • [add] Add local API endpoints for flexible pricing and privileged transitions #1301
  • [fix] yarn run dev-backend was expecting NODE_ENV. #1303

v5.0.0 2020-06-04

  • [change] Streamlining filter setup. Everyone who customizes FTW-templates, needs to update filters and unfortunately the related code has been spread out in multiple UI containers.

    Now, filters are more configurable through marketplace-custom-config.js. You can just add new filter configs to filters array in there - and that should be enough for creating new filters for extended data.

    If your are creating a totally new filter component, you can take it into use in a single file: src/containers/SearchPage/FilterComponent.js

    In addition, we have renamed couple of container components:

    • SearchFilters -> SearchFiltersPrimary
    • SearchFiltersPanel -> SearchFiltersSecondary (SearchFiltersMobile has kept its name.)

    SortBy filter's state is also tracked similarly as filters. From now on, the state is kept in MainPanel and not in those 3 different UI containers.

    #1296

v4.5.0 2020-06-01

  • [fix] In some situations, ProfileMenu has began to overflow on TopbarDesktop. #1290
  • [change] Update dependencies (patch updates only) #1291
  • [change] Refactor server API routes into separate files. #1294
  • [change] Start the backend API router in dev mode with a dev server. #1297

v4.4.3 2020-05-13

  • [fix] Allow white space on Japanese bank account info. Japan collects bank name and account owner name in addition to routing numbers. #1287
  • [fix] wrongly named default props handleSubmit renamed to onSubmit #1288

v4.4.2 2020-04-09

  • [fix] Handle deleted reviews in ActivityFeed #1283

v4.4.1 2020-03-30

  • [change] Improve the search page sorting and filters UI for different screen sizes #1280

v4.4.0 2020-03-25

  • [add] Search result sorting #1277
  • [change] Move category and amenities search filters from primary filters to secondary filters. #1275

v4.3.0 2020-03-16

  • [change] Redirect user back to Stripe during Connect Onboarding Flow when user is returned to failure URL provided that the Account Link generation is successful. #1269
  • [fix] Don't flash listing closed text on mobile view of BookingPanel when the listing data is not loaded yet. Instead, check that text is shown only for closed listings. #1268
  • [change] Use some default values to improve Stripe Connect onboarding. When creating a new Stripe the account we will pass the account type, business URL and MCC to Stripe in order to avoid a couple of steps in Connect Onboarding. We will also pass tos_shown_and_accepted flag. This PR will bring back the previously used accountToken which is now used for passing e.g. the account type to Stripe. #1267
  • [change] Update Modal component to have option to use Portal with usePortal flag. Keep also possibility to use modals without Portal because of ModalInMobile component. #1258

v4.2.0 2020-02-18

  • [add] Show a banner when a user is logged in with limited access. #1259 #1261
  • [add] Support for logging in as a user from Console. #1254
  • [change] Add handlebars 4.5.3 and serialize-javascript 2.1.1 to resolutions in package.json. #1251

[v4.1.0] 2020-02-03

  • [fix] Remove unused 'invalid' prop that breaks some versions of Final Form #1255
  • [fix] Fix console.warn functions. #1252
  • [add] Add missing countries (e.g. MX and JP) to StripeBankAccountTokenInput validations. #1250

v4.0.0 2019-12-19

Note: In this update we have deprecated the old PayoutDetailsForm and PayoutPreferencesPage. Form now on Stripe will handle collecting the identity information required for verificating the Stripe account. On FTW we will only handle creating the new account and adding and updating information about bank account (e.g. IBAN number). If you want to keep using the custom form inside your application you need to make sure that you are collecting all the required information and enabling users to update the account so that it doesn't get restricted.

  • [fix] Add missing props to examples related to EditListingWizard #1247
  • [fix] Add missing props to tests related to EditListingWizard #1246
  • [fix] Update links to API Reference docs. #1231

v3.7.0 2019-12-09

v3.6.1 2019-11-26

  • [fix] Fix XSS-vulnerability on SearchPage where URL param 'address' was exposed directly to schema, which is just a script tag: <script type="application/ld+json">. On server-side, this could leak malformed HTML through to browsers and made it possible to inject own script tags.

However, CSP prevents any data breach: injected js can't send data to unknonwn 3rd party sites.

NOTE: Check that REACT_APP_CSP is in block mode on your production environment. You can read more from Flex docs: https://www.sharetribe.com/docs/guides/how-to-set-up-csp-for-ftw/ #1233

  • [change] Rename repository form flex-template-web to ftw-daily. #1230

v3.6.0 2019-11-04

  • [change] update react-dates from 20.3.0 to 21.3.1 #1223
  • [change] Update helmet from 3.18.0 to 3.21.2 #1225
  • [change] Update @sentry/browser and @sentry/node from 5.6.2 to 5.7.1. Due to some refactoring Sentry has done internally which is included to this update, you might need to remove node_modules and run yarn install again. #1224
  • [add] Add default timezone to date formatting in example transaction process email templates. #1227
  • [change] Update @formatjs/intl-relativetimeformat from 2.8.3 to 4.2.1 #1222
  • [fix] Use currency of the lineItem on every line of the BookingBreakdown if possible. #1221
  • [fix] AvailabilityPlan doesn't need to have entries for every day. #1214
  • [change] Default transaction process alias changed. #1219
  • [change] Add default tx process definition. Remove default email templates. #1220

v3.5.1 2019-09-16

  • [add] add orverriding function onAdd and onRemove for CustomOverlayView in SearchMapWithGoogleMap to abide to React rules and do not unmountComponentAtNode when a component is rendered by React and use appendChild on onAdd instead of draw to improve performance. #1200
  • [fix] fix CustomOverlayView in SearchMapWithGoogleMap to work with new react-intl version, overriding render method to render child object by using createPortal instead of unstable_renderSubtreeIntoContainer. #1200

v3.5.0 2019-08-29

  • [change] Change the design of BookingBreakdown and add options to show only dates or booking date and time there. #1195
  • [change] Move BookingTimeInfo to separate component from InboxPage. Add options to show only booking dates or booking dates and times. #1194
  • [add] Add new Spanish translations related to storing payment card. #1193
  • [fix] Update yarn.lock (there was Lodash version resolution missing) #1190

v3.4.0 2019-08-29

  • [change] Update react-intl to 3.1.13. More information about the changes can be found from Upgrade guide for [email protected]

    • Proptype intlShape was removed so we needed to create it again. Because of this we added a new util/reactIntl.js file. This file is now used to wrap all the react-intl related imports.

    • addLocaleDate function was removed and react-intl library is now relying on native Intl APIs: Intl.PluralRules and Intl.RelativeTimeFormat. In order to support older browsers we needed to add intl-pluralrules and intl-relativetimeformat to util/polyfills.js

    • Also Node must be now compiled with full-icu which caused changes to start and test scripts in package.json. We also needed to add a specific config for nodemon

    • Default textComponentin IntlProvider changed to React.Fragment so we need to explicitly set textComponent to span. Otherwise all the snapshots would have changed and it might affect to UI if there is styles added to these spans generally in customization projects.

      Note: FormattedMessage component now supports tagName prop and improved rich-text formatting. #1181

  • [change] Update helmet (v3.20.0 > v3.20.1). #1186

  • [fix] Lodash vulnerability: enforce newer version for react-google-maps and react-dates #1188

  • [change] Update React, react-test-renderer and react-dom to 16.9.0. After these updates old lifecycle methods componentWillMount, componentWillUpdate and componentWillUpdate will cause deprecation warnings. Check the updated components from the PR #1172

  • [fix] ProfileSettingsForm: clear correct timeout. #1185

  • [fix] availabilityPlan prop in EditListingAvailabilityForm was missing. #1183

  • [fix] Bug fix: valueFromForm prop wasn't passed through different subcomponents. #1182

  • [add] Update German and French translations. #1184

  • [change] Migrate from react-helmet to react-helmet-async #1179

  • [change] Use sanitize.css from own file instead of npm package because updating it accidentally might break the UI. #1177

  • [fix] Change app.test.js after react-redux update #1178

  • [change] Update react-redux: v5.1.1 -> v7.1.1 #1176

  • [change] Update seedrandom from v2.4.4 to v3.0.3 #1175

  • [change] Update inquirer from v6.5.0 to v7.0.0 #1174

  • [change] Update final-form, final-form-arrays, react-final-form and react-final-form-arrays. This forced to make some code changes:

    • Old recommendation of by-passing default field formatting or parsin isn't accepted anymore
      • format={null} => use identity function instead: format={v => v}
      • parse={null} => use identity function instead: parse={v => v}
    • Final Form passes input props (name, value, onChange, onBlur, etc. ) grouped inside input key
      • those props now include type attribute too.
    • We had old form naming pattern with prop 'form', which now conflicted with updated Final Form (The 'form' prop was used when Redux-Form was the form library)

    #1173

  • [change] Update react-dates from v18.5.0 to v20.3.0 #1171

  • [change] Update Prettier to v1.18.2 #1170

  • [change] Update path-to-regexp to v3.0.0 #1169

  • [change] Update sharetribe-scripts to v3.1.1 #1167

  • [fix] Small change to remove card tect on SavedCardDetails modal. #1166

  • [change] Update Sentry (@sentry/browser / @sentry/node) from v4.5.1 to v5.6.2 #1164

  • Update dependecies: all the easily updateable minor and batch updates: array.prototype.find, babel-jest, core-js, enzyme (et al.), express, helmet, inquirer, lodash, nodemon, raf, redux, source-map-support #1163

v3.3.0 2019-08-22

  • [add] Saving payment card after payment or without initial payment. This release contains quite a lot changes to many files. This includes:

    • UI changes to CheckoutPage for showing the saved payment method
    • One more step to handlePaymentIntent flow on CheckoutPage if the user decides to save the payment card
    • Showing error notification on TransactionPage if saving the payment method has failed
    • Use Flex SDK v1.5.0 which has new endpoints for creating Stripe Customer and using Stripe SetupIntents
    • Add handleCardSetup function to stripe.duck.js
    • New shared duck file paymentMethods.duck.js for handling saving, deleting and replacing the payment method
    • New page PaymentMethodsPage in user's account settings
    • StripePaymenAddress used in StripePaymentForm is now a separate component used also in new PaymentMethodsForm
    • New LayoutWrapperAccountSettingsSideNav component which is used in account settings pages: ContactDetailsPage, PasswordChangePage, PayoutPreferencesPage, PaymentMethodsPage

    #1138

Read more from Flex docs: How saving payment card works in FTW

v3.2.1 2019-08-22

  • [fix] On ListingPage align avatar with the left side of the content and fix content width so that it aligns with the header image. #1155
  • [fix] Rehydrate bug: existing DOM elements were populated incorrectly #1154
  • [fix] Don't send personal id number or business profile to Stripe API when creating a Stripe customer if they are not required in stripe-config.js. This happened e.g. if someone filled the form after selecting the US and then before sending changed the country to Finland. #1151
  • [add] Add new French and Spanish translations related to keyword search and Spanish translations related to payment intents. #1148
  • [add] Add new French translations related to payment intents. Also few small changes to en.json for consistency. #1139

v3.2.0 2019-07-08

  • [add] Keyword search/filter added to SearchPage component. #1129
  • [fix] temporarily remove audit CI job. #1136
  • [change] Update outdated dependencies. This includes updating lodash to fix the security issue. #1135

v3.1.1 2019-07-08

  • [fix] Ensure on TransactionPanel that enquiry has a correct transition when a customer tries to book the listing. This might happen with transaction process changes (e.g. when changing from previous default to SCA process). #1131

[v3.1.0] 2019-07-05

  • [fix] SectionHero: fix type in search params. There was an extra "/s?". #1124
  • [add] Add support for Singapore as the payout country of a provider. Also fix a bug in passing the personal ID number to Stripe. #1122
  • [add] Add events.mapbox.com to connect-src in csp.js file. #1123
  • [change] Verify email automatically once the verification link is clicked. Redirect the user to the landing page after verification. #1121

v3.0.0 2019-07-02

v2.17.1 2019-06-11

  • [fix] stripeCardToken didn't update when the user tried to book the same listing for a second time. This update will clear the old cardtoken from Redux store when redirecting to TransactionPage. #1114
  • [fix] In LineItemProviderCommissionMaybe.js file check that providerCommissionLineItem exists. In default transaction process the providerCommissionLineItem can be expected to be there but if the process is using only customer commission there will be error. #1112
  • [security] Update Flex SDK version to v1.4.1. The new version updates depencencies with security issues #1111
  • [fix] Fix a bug in showing review links. Because of the bug the second review link was not visible in ActivityFeed. #1106
  • [fix] Emptying the priceFilter component in the searchPage caused a page breaking error. #1101

v2.17.0 2019-05-23

  • [change] Mapbox library dependencies updated to v1.0.0. #1099
    • Note: Mapbox changed their pricing scheme!
  • [fix] missing provider information (like SSN in US), might cause payment to fail on CheckoutPage. This improves related error message. #1098
  • [fix] Menu needs to wait for mounting to calculate dimensions properly. #1096
  • [fix] Renamed Component.example.css files to ComponentExample.css to fix bug introduced in one of the library updates. #1095
  • [add] rawOnly flag for Styleguide examples using fixed positioning or full-page dimensions. #1094
  • [fix] Show error when typing credit card number if e.g. the number is invalid. Fixes bug that was introduced in PR #1088. #1092
  • [change] Use Final Form on StripePaymentForm for consistency. Note that card form Stripe Elements in StripePaymentForm is not a Final Form field so it's not available trough Final Form but handled separately. #1088
  • [change] Move Stripe SDK call from StripePaymentForm to stripe.duck.js for consistency. #1086

v2.16.0 2019-05-08

This release makes 2 big updates to sharetribe-scripts package (which is our fork from Create React App). It is updated from v1.1.5 -> 2.1.8 -> 3.0.0. This brought up a couple of changes:

  • package.json has now a "browserlist" configuration key. This gives you an option to affect browser support (it affects CSS Autoprefixer and JS build output). You might want to update it.
  • IE support is removed from Create React App, but you can add polyfills yourself if needed.
  • React was updated to a version that supports Hooks and Rules of React eslint plugin is included.
  • All the npm vulnerability report exceptions were removed from .auditrc

There was also a couple of bug fixes you should check carefully: #1082, #1084.

Changes:

  • [fix] Previous change from currentUser.attributes.stripeConnected to separately included stripeAccount caused errors since updates to currentUser entity didn't include stripeAccount. Including it every time sounds quite error-prone, so we reversed that change. #1084
  • [fix] Edit updatedEntities function in util/data.js so that it doesn't mutate the oldEntities argument. #1079
  • [change] Update sharetribe-scripts (CRA fork) to v3.0.0. There are a couple of changes that you should check from #1081
    • Reserve use* function naming pattern for React Hooks.
    • Recent SDK update changed the proptypes for snapshots.
    • Updated scripts/config.js after Prettier version bump
    • Removed unnecessary audit exceptions
  • [fix] Ensure on TransactionPage that all the required data is loaded before showing the page. #1082
  • [fix] Use proper method for Sentry on logout to avoid error message. #1080,
  • [change] Update sharetribe-scripts (CRA fork) to v2.1.8. There are a couple of changes that you should check from #1073
    • package.json has now a "browserlist" configuration key. This gives you an option to affect Autoprefixer configs (aka CSS vendor prefixes / browser support). You might want to update it.
    • IE support is removed from Create React App, but you can add polyfills yourself if needed.
    • Test snapshots were also changed a bit. (Update your own custom tests if needed.)
    • Some CSS and React rules were more strict, you might need to make changes to your custom code.
  • [fix] New npm vulnerability alerts checked and added to exception list. #1075
  • [fix] ListingPage.duck: fix minor bug on dispatching the fetchReviewsRequest action #1074

v2.15.0 2019-04-24

  • [add] Improve printing API errors on web inspector (console.table) #1071

  • [fix] ManageAvailabilityCalendar.js didn't use UTC time when fetching data for calendar months. #1069

  • [add] Use sparse fields on InboxPage query to reduce data load. #1067

    • NOTE: if you need more fields on InboxPage, you need to add those to loadData function.
  • [add] Use sparse fields on SearchPage to reduce data load. #1066

    • NOTE: if you need more fields on ListingCard than title, price and geolocation - you need to add those to loadData function.

v2.14.0 2019-04-05

  • [add] German translations for recent PayoutDetailsForm changes. #1064
  • [add] Added NZD and HKD subunit divisors and refactored currency configuration. #1063
  • [add] Add support for arbitrary line items. #1062
  • [fix] US individual accounts had a non-editable business url in PayoutDetailsForm. It was probably OK, but there wasn't any reason to for it. #1061

v2.13.1 2019-03-29

  • [add] a comment about category and amenities filters. They don't work out-of-the-box, extended data needs a schema before it can work as a search filter. #1055
  • [fix] EditListingWizard: currentUser was null when the EditListingPage got reloaded causing TypeError. #1056

v2.13.0 2019-03-28

  • [add] Add translations for recent Stripe API related changes. (German will be included later.) #1052
  • [fix] JPY currency was configured wrongly: it doesn't use subunits. #1051
  • [add] Complete rewrite to PayoutDetailsForm due to breaking changes in Stripe API. #1049
    • You should track all your customizations to PayoutDetailsForm and related changes in user.duck.js and elsewhere before merging this upstream-update.
    • You should update Stripe API to "2019-02-19" or later
  • [add] Booking: use attributes displayStart and displayEnd, instead of reading booking period directly from start and end attributes. #1050
  • [fix] A listing title that contained only stripped-off characters caused bugs in slug / pathName generation. #1048
  • [change] Removed Node-engine setup from package.json. Fixed version was causing problems for quite many in their first FTW installation. Note: when troubleshooting your Heroku installation, you might want to reintroduce engine setup. #1043
  • [fix] Add error handling to PayoutDetailsForm and StripePaymentForm in case Stripe publishable key is not configured yet. #1042
  • [fix] FieldBirthdayInput: placeholder text was not selected by default. #1039

v2.12.0 2019-02-28

  • [fix] Fix to PR #1035. In user.duck.js send correct params depending on Stripe API in use. #1037
  • [change] Update creating Stripe account token to support the latest Stripe API update. See also Stripe API changelog. IMPORTANT: If you are using a Stripe account created earlier than 19th of February 2019 you need to change the value of useDeprecatedLegalEntityWithStripe in stripe-config.js. You can check the Stripe API version you are using from Stripe Dashboard -> Developers. Since the change in Stripe API was quite big we are not able to support company accounts with new Stripe API yet! The option for company accounts will be hidden if the value useDeprecatedLegalEntityWithStripe is set to false. #1035
  • [change] Improve German translations. #1034
  • [change] Reordered import/exports on src/components/index.js. This helps to mitigate possible circular dependency problems and strange bugs in CSS bundle. In addition, derivative buttons were refactored to work with rootClassName prop (PrimaryButton, SecondaryButton and InlineTextButton). #1024

[v2.11.1] 2019-02-21

  • [add] New translations for French and Spanish (fr.json & es.json) #1028
  • [add] New translation file German (de.json). This also adds hyphenation to some of the titles. #1027

v2.11.0 2019-02-20

  • [fix] SelectMultipleFilter had a bug on mobile layout - onSubmit didn't get called. This fixes also two other issues with SelectMultipleFilter: hovering on ListingCard removed dirty values on repaint and there was an outline flashing on FilterForm when clicking checkboxes. #1025
  • [fix] Small changes in CSS files in order to match content width with the footer in pages where the footer is visible. Also, make side layout (used e.g. in TermsOfServicePage, InboxPage, ContactDetailsPage) align width footer better. Check responsive layouts carefulle after taking update from upstream. #1090
  • [add] This adds an example how user-generated content could be sanitized. If you have extended data you should consider if sanitization is needed for that. #1023
  • [change] A new component UserDisplayName is added for showing user display name and also handling the cases where a user is banned or deleted. When the user name must be a string instead of a component (e.g. in Avatar and in ListingPage) you can use a new function userDisplayNameAsString. Together these will replace the old userDisplayName function which is now deprecated. Also some small bug fixes to showing banned user. There is quite a lot of file changes caused by updating test files. #1022
  • [change] Remove error handling for unverified email from PasswordRecoveryPage and translations related to that. #1021

v2.10.0 2019-01-31

  • [add] Add audit script and include it as a CI job. We had security audit job previously on top of node security platform (nsp), but that service was closed on December 2018. #1020
  • [change] Extracted and refactored utility functions related to transaction and refactored several components that show transaction data (incl. InboxPage, TransactionPanel, ActivityFeed). Before updating your customization project, you should read more about what has changed from the pull request. #1004
  • [change] Rest of the documentation moved to Flex Docs: https://www.sharetribe.com/docs/ #1015

v2.9.0 2019-01-29

  • [fix] day boundaries for date filter and pass booking state to bookings.query
    • SearchPage.duck.js: endDate should not be expanded for night bookings
    • DateRangeController: bookingUnitType: day should allow 0 night
    • EditListingPage.duck.js booking state should be passed to query #1016
  • [add] Date filter added and filter components (single and multiselect) are refactored to use shared subcomponents. #949
  • [fix] Fixed copy-text in ReviewForm: Rating is required. #1011
  • [change] Some of the documentation moved to Flex Docs: https://www.sharetribe.com/docs/ #1012 and #1014
  • [fix] Allow ownListing as listing proptype in BookingPanel component. #1007
  • [add] Add info text about additional owners to PayoutDetailsForm. #1006
  • [change] Default to English translation if the translation key is missing. After this update, new translation keys will not be added to other translation files with English default texts. We keep providing translations in our supported languages but they might not be up to date all the time. This means if you want to update your translations beforehand or use your own translations file, you can use translation CLI to check if there are translations missing. #1005
  • [change] Remove origin parameter from default-location-searches.js #1003
  • [add] Limit location autocomplete by adding an optional country parameter to geocoding call in both Mapbox and Google Maps integrations. Also updated Mapbox SDK to version 0.5.0. #1002

v2.8.0 2019-01-17

  • [add] Add CLI tool for creating .env file and setting up the environment variables. #994
  • [change] Change from Raven to Sentry SDKs for browser and Node.js to version 4.5.1. With the new SDKs only one DSN needs to be configured so update also environment variables and documentation related to Sentry. #999
  • [fix] Use environment variable REACT_APP_AVAILABILITY_ENABLED to enable or disable availability calendar. In the config.js file variable fetchAvailableTimeSlots is now renamed to more general enableAvailability because it affects both fetching availability data and enabling the availability calendar. #1000
  • [fix] UI was broken for banned user after transaction enquiry changes. #996

v2.7.1 2019-01-09

  • [add] Separate date ranges when fetching availability exceptions and bookings on availability calendar. After this change, providers can block dates 365 days in advance instead of just 180 days. #997
  • [fix] Fixed a small typo. #995

v2.7.0 2019-01-08

  • [add] Add Spanish translations file: es.json and update docs/translations.md #992
  • [add] Add French translations to new translations keys. Few minor updates to English translations for consistency. #991
  • [add] Support for Stripe company accounts. PayoutDetailsForm was separated into smaller subcomponents. Multiple new translation keys were added and they might not be translated into French yet. #980
  • Manage availability of listings. This works for listings that have booking unit type: 'line-item/night', or 'line-item/day'. There's also 'manage availability' link in the ManageListingCards of "your listings" page. #972

v2.6.0 2019-01-02

  • [fix] Wrong translations for perUnit in fr.json. #989
  • [change] Layout changes to BookingPanel on listing and transaction pages. #988
  • [fix] Fix wrong booking title on listing page that has been introduced in #969. #987
  • [fix] yarn.lock file was not up to date #986
  • [add] Add an image of fork button to the deploy to production guide. #985
  • [remove] Remove the default built-in email templates. Built-in email templates can be edited in Console. #983
  • [add] Enable booking a listing straight from an enquiry #976
  • [change] Extract SectionBooking to a distinct component from ListingPage. #969

v2.5.0 2018-12-17

  • [add] Add French translations to recently added translation keys. Also few minor changes to English translations for consistency. #981
  • [add] Create FieldRadioButton component. #977
  • [fix] Temporarily remove audit step from CI because of the Node Security Platform shutting down. #979
  • [add] Add Stripe support for new countries: Canada, New Zealand, Switzerland, Norway, and Hong Kong. Also add more required fields for US and Australia.
    • StripeBankAccountTokenInputField component and PayoutDetailsForm have some changes
    • Stripe related configuration is separated to new stripe-config.js file.
    • Multiple new translation keys were added and they might not be translated into French yet. If you use French translation check PR for the changed keys. #968
  • [change] Remove generic perUnit translations and replace them with specific night, day and unit translations depending on booking unit chosen in config. #970
  • [fix] Formatting docs with newest Prettier - related commit was lost in #967 at some point. #975
  • [change] Improved documents related to onboarding: env.md, deploying-to-production.md, map-providers.md #971
  • [change] Update outdated dependencies. #967
    • Note: Updating Prettier caused multiple file changes mostly to .md files and compose setup.
  • [change] Update supported Node version to the latest LTS (10.14). #964
  • [add] Add documentation about deploying to production. Also add deploy to Heroku button. #961

v2.4.1 2018-11-29

  • [fix] Add missing French translation. #966

v2.4.0 2018-11-28

  • [change] Update Flex JS SDK to 1.2. #963
  • [add] Add French as a default language in addition to English. #962
  • [fix] Show Stripe error message on CheckoutPage if payment request fails because of Stripe error. Also show error if payment amount is zero. #960
  • [fix] Remove unused translation keys and update PasswordChangePage title #959
  • [add] Add translations CLI tool #955

v2.3.2 2018-11-20

  • [fix] Take 2: don't set currentUserHasListings if fetched listing is in draft state. #956
  • [fix] PriceFilter styles #954

v2.3.1 2018-11-16

  • [fix] Don't set currentUserHasListings if fetched listing is in draft state. ModalMissingInformation was shown too early for users creating their first listing. #953
  • [change] Add index files of components and containers folder to .prettierignore #952
  • [fix] the alignment of arrows in FieldDateRangeInput and refactoring arrow icon code. #951
  • [change] Remove unnecessary language configuration and improve translations documentation. #950

v2.3.0 2018-11-13

  • [add] Draft listing is used in EditListingWizard, ManageListingCard and ListingPage. From now on description panel creates a draft listing and photos panel publishes it. You can also view your current draft listings from 'your listings' page. #947
  • [fix] Firefox showed select options with the same color as select itself. Now options have their own color set and placeholder option needs to be disabled. #946

v2.2.0 2018-10-31

  • [add] SearchPage: adds PriceFilter (and RangeSlider, FieldRangeSlider, PriceFilterForm).

    Note: You must define min and max for the filter in src/marketplace-custom-config.js. Current maximum value for the range is set to 1000 (USD/EUR/currency units). In addition, this fixes or removes component examples that don't work in StyleguidePage.

    #944

v2.1.1 2018-10-23

  • [add] Added initial documentation about routing and loading data. #941
  • [remove] Removed plain text parts of email templates. #942
  • [add] Add referrer policy due tokens in URL on PasswordResetPage and EmailVerificationPage. #940
  • [add] Added initial documentation about our Redux setup. #939
  • [add] Added a small comment to documentation about the current state of code-splitting. #938

v2.1.0 2018-10-01

  • [change] Improve performance of public pages. Image assets are optimized and lazy loading is applied to images in SectionLocation and ListingCard. Read documentation for implementation details. #936
  • [change] Update sharetribe-scripts. cssnext (used previously in sharetribe-scripts) has been deprecated. Now postcss-preset-env is used instead with stage 3 + custom media queries and nesting-rules. If this change breaks your styling, you could still use v1.1.2. The next version of postcss-nesting (v7.0.0) will no longer support nested at-rules (like media queries) - therefore, we didn't update to that version yet. #935
  • [change] Change Mapbox's default font to marketplace font. #934
  • [add] New default design for the landing page's hero section. Now the CTA button's default behavior is 'Browse'.
    • marketplaceH1FontStyles: changed letter spacing to be more tight.
    • SectionHero has now a search page link that should be customized to point to your marketplace primary area #933

v2.0.0 2018-09-19

  • [add] New default map provider (Mapbox) and complete refactoring to all map and geocoding components. #888

    Note: Before updating to version 2.0.0, you should very carefully track customizations that you have made to following components:

    • LocationAutocompleteInput
    • Map
    • SearchPage (especially previous onIdle function)
    • SearchMap
    • SearchMapPriceLabel
    • SearchMapGroupLabel
    • SearchMapInfoCard

    To get a better understanding of what has changed, you should read documents about how to integrate to map providers and especially changing map provider to Google Maps

v1.4.3 2018-09-15

  • [fix] fuzzy location didn't change when listing location changed. #931
  • [fix] obfuscatedCoordinatesImpl didn't always return coordinates within given offset radius. #930
  • [fix] LocationAutocompleteInput: blur input when selecting by enter to prevent flash of default predictions. #928
  • [fix] LocationAutocompleteInput: selecting with enter key prevented while fetching predictions. #923

v1.4.2 2018-09-06

  • [add] Reduce character queries on LocationAutocompleteInput to reduce geocoding costs. #883
  • [change] Update git links and improve documentation #911
  • [change] improve env-template to better defaults. #912
  • [fix] Touch event from location autocomplete prediction list ended up causing clicks. #917
  • [change] Disable default predictions in listing wizard #906

v1.4.1 2018-08-21

  • [fix] Fix window resize redirecting to search page with reusable map component #905

  • [change] Maps configuration has been restructured. The new configuration is agnostic of the maps provider in use and works with both Google Maps as well as Mapbox.

    The fuzzy location circle has less configuration, but otherwise all the previous settings can be set also in the new configuration. See config.js for details.

    The default location searches are now enabled in the .env-template. For old installations, the REACT_APP_DEFAULT_SEARCHES_ENABLED env var should be set to true. The default searches can then be configured in src/default-location-searches.js.

    #900

v1.4.0 2018-08-17

  • [change] Put availability calendar behind a feature flag #902
  • [fix] Drop date time from time slots request query params #901
  • [fix] Make a second time slots request when required #901
  • [add] Map component (used in ListingPage) using Mapbox instead of Google Maps #896
  • [add] Listing availability #868, #873, #891 & #892
  • [add] Add support for user's current location as a default suggestion in the location autocomplete search. #895
  • [add] Add support for default locations in the LocationAutocompleteInput component. Common searches can be configured to show when the input has focus. This reduces typing and Google Places geolocation API usage. The defaults can be configured in src/components/LocationAutocompleteInput/GeocoderGoogleMaps.js. #894
  • [change] Removed the country parameter from the search page as it was not used anywhere. #893

v1.3.2 2018-08-07

  • [change] Update the Sharetribe Flex SDK to the 1.0.0 version in NPM. All the sharetribe-sdk imports are now using the new package name sharetribe-flex-sdk. #884
  • [change] Reusable SearchMap. Fixed the original reverted version. (Includes audit exception 678) #882
  • [fix] Hotfix: reverting the usage of ReusableMapContainer due to production build error. #881
  • [change] Reusable SearchMap. #877
  • [fix] Fix a search filters panel bug where selecting an option in a multi select filter ends up invoking a mobile filter callback function. #876
  • [change] Use seeded random for client side coordinate obfuscation #874
  • [change] Change static map to dynamic map when clicked. #871
  • [fix] Lazy load map only if the map is near current viewport. #871
  • [change] Use Google's static map on ListingPage. This is a reaction to pricing change of Google Maps APIs. #869
  • [change] Use sessionTokens and fields for Autocomplete calls to Google Maps. This is a reaction to pricing change of Google Maps APIs. #867
  • [change] Change TransactionPage state management in loadData. #863, #865 & #866
  • [fix] Fix submit button state on contact details page. #864
  • [fix] Fix listing page host section layout bug. #862
  • [fix] Fix initial message input clearing too early in checkout page. #861
  • [fix] Fix setting Topbar search input initial value.
  • [change] Update Redux to v4 #859
  • [fix] Fix setting Topbar search input initial value #857
  • [fix] Improve slug creation (slashes were breaking rendering in some environments) #850
  • [fix] Anonymous user should see contact link on UserCard #851
  • [fix] Persisting booking request details across authentication #852
  • [change] Footer styles changed to more generic (no disappearing columns etc.) If you have made changes to Footer, consider extracting it to different component before update. #853
  • [change] Logo customization refactored to be easier. Check CheckoutPage, TopbarDesktop and Footer after update. #854
  • [fix] Fix showing reviews from banned users. #855
  • [change] Migrate remaining Redux Forms to Final Form. Also now all the form components can be found in the src/forms folder. Remove redux-form from the dependencies. #845
  • [fix] Extract and fix missing information reminder modal from Topbar #846
  • [fix] Add missing styles for ModalMissingInformation from Topbar #847
  • [fix] API does not return all image variants anymore, this adds correct variants to update contact details call. #848
  • [change] Change lodash import syntax to reduce bundle size (-15.14 KB) #839
  • [fix] Use https instead of git to access SDK repo for Heroku build (now that the repo is public). TODO: create SDK releases instead of using direct refs to single commit. #841
  • [fix] Typo fix for background-color #842
  • Remove custom touched handling from FieldCheckboxGroup as it has has become obsolete now that Final Form is replacing Redux Form. #837
  • Create Stripe account directly instead of passing payout details to Flex API (deprecated way). #836

v0.2.0

  • Starting a change log for Flex Template for Web.