Skip to content

Releases: sharetribe/ftw-daily

v4.0.0

20 Dec 09:16
bef4a71
Compare
Choose a tag to compare

v4.0.0 Changes

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

09 Dec 16:15
b6b7f87
Compare
Choose a tag to compare

v3.7.0 Changes

v3.6.1

26 Nov 11:59
Compare
Choose a tag to compare

v3.6.1 Changes

  • [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 unknown 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

04 Nov 12:21
9c19441
Compare
Choose a tag to compare

v3.6.0 Changes

  • [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 the 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

17 Sep 09:57
1968d26
Compare
Choose a tag to compare

v3.5.1 Changes

  • [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

13 Sep 10:11
483c590
Compare
Choose a tag to compare

v3.5.0 Changes

  • [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

29 Aug 15:14
c98738a
Compare
Choose a tag to compare

v3.4.0

Dependency upgrades

  • react-intl: v2.9.0 -> 3.1.13 React Intl was the most problematic to upgrade.

    • 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 are styles added to these spans generally in customization projects.

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

    Read more from Upgrade guide for [email protected]

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

  • Migrate from react-helmet to react-helmet-async, since react-helmet wasn't updated often
    enough and react-helmet-async was supporting React 16+ better. This caused changes to app.js (<HelmetProvider> added) and it changes the way Helmet needs to be imported. #1179

    • import Helmet from 'react-helmet'; vs import { Helmet } from 'react-helmet-async';
  • sanitize.css was moved to own file instead of importing it from npm package because updating it accidentally might break the UI.

  • react-redux: v5.1.1 -> v7.1.1 Note: connect is now using Hooks.

    • In FTW, app.test.js had to be split to SSR aka node environment tests and client tests since JSDOM environment in Jest doesn't work well with the environment detection hack that react-redux uses internally.
  • seedrandom: v2.4.4 -> v3.0.3. (FTW wasn't affected.)

  • inquirer: v6.5.0 -> v7.0.0. (They dropped support for Node 6)

  • final-form, final-form-arrays, react-final-form and react-final-form-arrays. This forced us to make some code changes:

    • Old recommendation of by-passing default field formatting or parsing 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.
    • Our old code sometimes used a prop called form as a way to pass id/name of the form to the form. So that if there's a need to add id's to inputs they could be unique ${form}.inputId. This was a bad choice since when we ended up using Final Form (and this newer version of it): they introduced form prop of their own. That form prop is used to pass in formAPI - and if there's form prop passed outside of Final Form, it is used internally as an alternative formAPI. In v3.4.0, we have tried to rename all the remaining old form props as formId.
      If you have created custom forms by copy-pasting code from FTW forms, you should check that the name of the form is not passed in as form but formId. Otherwise, you will get an error: "TypeError: f.pauseValidation is not a function" from Final Form.
    • Note: most of the changes came from react-final-form: 4.0.2 > v5.0.0 -> v6.0.0 -> v6.3.1
  • react-dates: v18.5.0 -> v20.3.0

  • prettier: v1.17.0 -> v1.18.2

    • Check if you need to format your code: yarn run format
  • path-to-regexp: v2.4.0 -> v3.0.0. It is used in create populated paths in our route generation.

  • sharetribe-scripts: v3.0.0 -> v3.1.1

    • Remove references to jsx-a11y/href-no-hash for eslint since it didn't exist anymore.
  • Sentry: v4.5.1 -> v5.6.2

  • Plus minor and patch upgrades for other dependencies too.

Complete [Changelog] with links to PRs

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

    • 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.

  • [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:
    #1173

    • Old recommendation of by-passing default fiel...
Read more

v3.3.0

22 Aug 14:03
239914c
Compare
Choose a tag to compare

v3.3.0 Changes

  • [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

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

#1138

v3.2.1

22 Aug 07:28
15994f9
Compare
Choose a tag to compare

v3.2.1 Changes

  • [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

18 Jul 15:05
61449c4
Compare
Choose a tag to compare

v3.2.0 Changes

  • [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

Read more about keyword search: