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.
Note: Previous release tags (before v4.0.0) are coming from upstream: https://github.com/sharetribe/flex-template-web/
- [fix] Check length of
selectedConfigOptions
inSectionFeaturesMaybe
to choose between one and two column layout. #92
This is update from upstream: v4.4.3
- [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
- [change] Reorganize search filters #89
- [fix] Remove unnecessary required props, which were introduced accidentally in upstream update (v6.3.0). #88
- [add] Time-based availability filtering with a start/end date + min booking duration search filter #85
v6.4.1 2020-04-09
- [fix] Fix user display name references in example tx process email templates #86
This is update from upstream: v4.4.2
- [fix] Handle deleted reviews in ActivityFeed #1283
v6.4.0 2020-04-01
This is update from upstream: v4.4.1
- [change] Improve the search page sorting and filters UI for different screen sizes #1280
- [add] Search result sorting #1277
v6.3.0 2020-03-16
This is update from upstream: v4.3.0
- [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 usedaccountToken
which is now used for passing e.g. the account type to Stripe. #1267 - [change] Update
Modal
component to have option to usePortal
withusePortal
flag. Keep also possibility to use modals without Portal because ofModalInMobile
component. #1258
v6.2.0 2020-02-18
This is update from upstream: v4.2.0
- [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 andserialize-javascript
2.1.1 to resolutions inpackage.json
. #1251
v6.1.0 2020-02-03
Update from upstream (first 3 bullets) and a couple of pending changes.
- [fix] PaymentMethodsForm: 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 - [add] Add French and Spanish translations for yogatime #72
- [fix] Fix bug in showing availability exceptions. This bug was introduced in v6.0.0. #71
v6.0.0 2019-12-20
This is update from upstream: v4.0.0
- [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
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
v5.1.0 2019-12-09
- [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). - [add] Add IconEdit #1237
Update from upstream: v3.6.1
v5.0.2 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/
#62
- [fix] Add missing translation key EditListingDescriptionPanel.createListingTitle and change link name in UserNav. #62
v5.0.1 2019-11-22
- [fix] Fix proptype validation error for initialized date object for FieldDateInput #58
- [fix] Change the text in price filter. #59
v5.0.0 2019-11-21
This release creates lots of changes to the default logic (only one listing aka teacher profile allowed), translations files (Saunatime is changed to Yogatime), and it also adds AvailabilityExceptions to EditListingAvailabilityPanel. If you have started with the original Flex Template for Web, you need to be extra careful when you switch to this release, since there are pull request that you might need to revert when you take update from upstream. (E.g. you might want to allow multiple listings in your marketplace.)
-
[change] Copy-text changes (most of them to EditListingWizard panels and all the "classes" are changed to "sessions") #55
-
[fix] Reseting bookingStartDate picker didn't reset the current month. #54
-
[change] Yogatime UI tweaks.
- Change hard-coded "sauna" strings and rules tab in EditListingWizard.
- Change font-size in Avatar.
- Remove booking subtitle on LandingPage.
- Enforce no-wrap on SelectSingleFilter.
- Copy-text changes.
- Make AvailabilityPlan clickable (opens edit form)
-
[change] About page. #50
-
[change] Remove “Hosted by” text from CheckoutPage. Link provider's avatar to listing instead of the user profile on InboxPage and on TransactionPage. Don't add a link to profile to Avatar on ActivityFeed or Reviews. #47
-
[fix] Add allowOnlyOneListing prop to EditListingPage and redirect to existing listing if true. #52
-
[fix] Recently added Footer on EditListingWizard was on top of payout details modal. #51
-
[change] Hide policy tab ("sauna rules") from
EditListingWizard
. Also, fix height of the page when data is loading so that the footer stays in place. #49 -
[change] Changes to
ListingPage
desing: make header image full width and avatar bigger, show only selected yoga styles, move price fromSectionHeading
to Panel and remove hosted by text and the wholeSectionHostMaybe
. We also moved theModal
withEnquiryForm
directly toListingPage
. #46 -
[add] EditListingAvailabilityPanel: add list of current AvailabilityExceptions and edit form in modal. #45
-
[fix] Fix date formatting in example tx process email templates #48
-
[change] Change images and update favicons. Also, update links on the
LandingPage
. Make theOwnListingLink
component more generic so that it can be used also in theSectionHowItWorks
. #42 -
[change] Replace amenities with yoga styles and category with certificate in search filters and EditListingEizard. Show the updated public data also on ListingPage. Add new flags
hideFromFilters
andhideFromListingInfo
to certificate filter inmarketplace-custom-config.js
. These new flags are used to determine if the value shoud be visible in search filters or listing info (ListingPage and ListingCard). #44 -
[fix] Fix the listing link on
Topbar
so that link works also with listings in draft or pending approval states. #41 -
[change] Remove listings section from
ProfilePage
. #43 -
[fix] Fix proptype checks for FieldDateAndTimeInput and FieldDateInput. #39
-
[fix] Fix same date detection on TimeRange component. #38
-
[change] Hide inbox tabs if user doesn't have a listing. #37
-
[change] Change the logo, marketplace color and favicons from Saunatime to Yogatime. #36
-
[change] Change the default locations used in
Topbar
andFooter
. #35 -
[change] Hide the end date from
FieldDateAndTimeInput
. If you want to enable longer booking periods you can get the end date field back with couple of code changes. #34 -
[fix] Fix the bugs in BookingTimeForm when the day has availability up to midnight. The next day should not be counted as available if there is no availabilty set to that day. Also, the calculated end date should be same as the start day if the start time is at 23:00 #33
-
[change] Remove ManageListingsPage from routing and change the links in Topbar to point either AddListingPage or EditListingPage depending on if the user already has a listing or not. #30
-
[change] Move isDayBlocked prop to FieldDateAndTimeInput. #32
-
[change] Extract TimeRange component away from BookingTimeInfo. Updates also FieldRadioButton, IconClose, and removes unused translations (EditListingAvailabilityForm was removed). #31
v4.1.0 2019-11-04
- [fix] change console.warning to console.warn and remove examples from FieldDateRangeInput component (the component is not updated to work with time-based availability).
- [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 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
v4.0.0 2019-10-25
- [add] Add default process and email templates to
ext/transaction-process
. #20 - [fix] BookingTimeForm: UI improvements to date and time pickers. #23
- [fix] Make the time selects fixed with on
EditListingPage
and add hover color to remove entry icon. #22 - [fix] BookingTimeForm: do not pick exclusive end date from selected timeslot #21
- [fix] Due to DST, one sharp hour (03:00) happens twice a day. #19
- [fix] Submit buttons need extra space to the end of the form on mobile browsers. #18
- [remove]
EditListingAvailabilityForm
component. It's for day-based process. #17 - [add] AvailabilityPlan edit form created and
EditListingAvailabilityPanel
uses it. #8 - [fix] Query up to 500 timeslots per request and fix border-bottom of disabled FieldSelect. #16
- [add] Add more tests to functions in
util/dates.js
. #11 - [add] Update translations to use hour instead of unit. #15
- [fix] Fix BookingTimeForm and add monthly timeslots to picker. #13
- [add] Add time-based dates to
BookingBreakdown
onCheckoutPage
. #11 - [add] New components
BookingTimeForm
andFieldDateAndTimeInput
for handling time-based availability. Also change template to use time-based transaction process. #7 - [add] Inbox and TransactionPage use time zones to display booking times #10
- [add] Fetch timeSlots on ListingPage and TransactionPage. #9
- [remove] Remove dateFromAPIToLocalNoon and dateFromLocalToAPI. #6
- [add] Add new component
FieldTimeZoneSelect
. Also addmoment-timezone
as a dependency and some helper functions toutil/dates.js
for handling timezones and tiem-based timeslots. #5 - [add] add FieldTimeZoneSelect component and a script that can extract IANA time zone keys from moment-timezone's JSON formatted files. #2
v3.5.1 2019-09-17
- [add] add orverriding function
onAdd
andonRemove
forCustomOverlayView
inSearchMapWithGoogleMap
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 ofunstable_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 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
-
[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 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 is styles added to these spans generally in customization projects.Note:
FormattedMessage
component now supportstagName
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
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:
- 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.
- those props now include
- 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)
- Old recommendation of by-passing default field formatting or parsin isn't accepted anymore
-
[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 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 newPaymentMethodsForm
- 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 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
- [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
incsp.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
-
[add] Strong Customer Authentication (SCA) with Stripe's new PaymentIntents flow. This is a big change for checkout flow and includes a madatory transaction process change. #1089
- You should check the pull request
- and read 3 Flex Docs articles: SCA, PaymentIntents, and How to take PaymentIntents into use
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 toTransactionPage
. #1114 - [fix] In
LineItemProviderCommissionMaybe.js
file check thatproviderCommissionLineItem
exists. In default transaction process theproviderCommissionLineItem
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 inStripePaymentForm
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
tostripe.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 includedstripeAccount
caused errors since updates to currentUser entity didn't includestripeAccount
. Including it every time sounds quite error-prone, so we reversed that change. #1084 - [fix] Edit
updatedEntities
function inutil/data.js
so that it doesn't mutate theoldEntities
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 toloadData
function.
- NOTE: if you need more fields on
-
[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 toloadData
function.
- NOTE: if you need more fields on
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 inuser.duck.js
and elsewhere before merging this upstream-update. - You should update Stripe API to "2019-02-19" or later
- You should track all your customizations to
- [add] Booking: use attributes
displayStart
anddisplayEnd
, instead of reading booking period directly fromstart
andend
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
andStripePaymentForm
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
instripe-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 valueuseDeprecatedLegalEntityWithStripe
is set tofalse
. #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
- [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. inAvatar
and inListingPage
) you can use a new functionuserDisplayNameAsString
. Together these will replace the olduserDisplayName
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 fromdefault-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 andcompose
setup.
- Note: Updating Prettier caused multiple file changes mostly to
- [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.
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, theREACT_APP_DEFAULT_SEARCHES_ENABLED
env var should be set totrue
. The default searches can then be configured insrc/default-location-searches.js
.
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 namesharetribe-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
- Starting a change log for Flex Template for Web.