Releases: sharetribe/ftw-daily
v4.0.0
v4.0.0 Changes
- [change] Use Stripe's Connect onboarding for
adding and updating the identity information of the Stripe account.- Before updating to this version you should check
the related pull request - Read more from documentation:
How to handle provider onboarding and identity verification on FTW
- Before updating to this version you should check
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.
v3.7.0
v3.7.0 Changes
- [change] Make it easier to reorder EditListingWizard tabs/panels. #1240
- [change] In
PayoutDetailsForm
show states (US and AU) and provinces (CA) in dropdown instead of input. Since November 18, 2019 Stripe has been validating these values (read more https://support.stripe.com/questions/connect-address-validation). #1232 - [add] Add IconEdit #1237
v3.6.1
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
toftw-daily
.
#1230
v3.6.0
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 runyarn 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 theBookingBreakdown
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
v3.5.1 Changes
- [add] add orverriding function
onAdd
andonRemove
forCustomOverlayView
in
SearchMapWithGoogleMap
to abide to React rules and do notunmountComponentAtNode
when a
component is rendered by React and useappendChild
ononAdd
instead ofdraw
to
improve performance.
#1200 - [fix] fix
CustomOverlayView
inSearchMapWithGoogleMap
to work with newreact-intl
version,
overridingrender
method to render child object by usingcreatePortal
instead of
unstable_renderSubtreeIntoContainer
.
#1200
v3.5.0
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 fromInboxPage
. 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
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 newutil/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 addintl-pluralrules
andintl-relativetimeformat
toutil/polyfills.js
- Also, Node must be now compiled with
full-icu
which caused changes tostart
andtest
scripts inpackage.json
. We also needed to add a specific config fornodemon
- Default
textComponent
inIntlProvider
changed toReact.Fragment
so we need to explicitly
settextComponent
tospan
. 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]
- Proptype
-
Updated
react
,react-test-renderer
andreact-dom
to 16.9.0. After these updates old
lifecycle methodscomponentWillMount
,componentWillReceiveProps
andcomponentWillUpdate
will cause deprecation warnings. Check the updated components from the PR #1172 -
Migrate from
react-helmet
toreact-helmet-async
, since react-helmet wasn't updated often
enough andreact-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. #1179import Helmet from 'react-helmet';
vsimport { 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.
- 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
-
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
andreact-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.
- those props now include
- 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 introducedform
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 oldform
props asformId
.
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 asform
butformId
. 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
- Old recommendation of by-passing default field formatting or parsing isn't accepted anymore
-
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
- Check if you need to format your code:
-
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.
- Remove references to
-
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 addintl-pluralrules
and
intl-relativetimeformat
toutil/polyfills.js
-
Also, Node must be now compiled with
full-icu
which caused changes tostart
andtest
scripts inpackage.json
. We also needed to add a specific config fornodemon
-
Default
textComponent
inIntlProvider
changed toReact.Fragment
so we need to explicitly
settextComponent
tospan
. 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 supportstagName
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- We enforced a newer version for
react-google-maps
andreact-dates
through package.json resolutions
- We enforced a newer version for
-
[change] Update
React
,react-test-renderer
andreact-dom
to 16.9.0. After these updates old lifecycle methodscomponentWillMount
,componentWillUpdate
andcomponentWillUpdate
will cause deprecation warnings. Check the updated components from the PR #1172 -
[fix] ProfileSettingsForm: clear correct timeout.
#1185 -
[fix]
availabilityPlan
prop inEditListingAvailabilityForm
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
toreact-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...
v3.3.0
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 onCheckoutPage
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 tostripe.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 inStripePaymentForm
is now a separate component used also in new
PaymentMethodsForm
- New
LayoutWrapperAccountSettingsSideNav
component which is used in account settings pages:
ContactDetailsPage
,PasswordChangePage
,PayoutPreferencesPage
,PaymentMethodsPage
- UI changes to
Read more from Flex docs: How saving payment card works in FTW
v3.2.1
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 instripe-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