Releases: sharetribe/web-template
v3.5.0
Formally releasing v3.5.0.
Note: these bug fixes and features have been in the codebase for a long time (since the beginning of November - except 277 & 278).
Translations changes
New translation keys:
"CheckoutPage.tooManyRequestsError": "Payment request failed. There have been too many requests made in a short amount of time. If the error persists, try refreshing the page or contact support.",
"InquiryForm.tooManyRequestsError": "Sending inquiry failed. There have been too many requests made in a short amount of time. If the error persists, try refreshing the page or contact support.",
Changes v3.5.0
- [fix] OrderPanel: showed price for inquiry on the mobile layout even if the price was marked hidden
#278 - [add] Add a specific message for too-many-request error on ListingPage and CheckoutPage
#277 - [fix] Add missing update to yarn.lock file.
#272 - [fix] Final Form: iOS 17.0.x initializes unreliably Object.assign. This is fixed in iOS 17.1, but
for the transition period, we decided to introduce a patch to remedy the situation.
#271 - [add] Update translation assets for French.
#269 - [add] Limit listing fields to specific listing types through the Console.
#268 - [add] Update translation assets for French.
#267 - [fix] TransactionPage.duck.js: add another delayed refresh call for tx after transition.
#265 - [change] ListingPage: always render multi-enum sections.
#264 - [add] SectionFooter: add title attributes to social media icons.
#261 - [add] PageBuilder: add backgroundImage overlay to shade the image darker.
#262 - [fix] the keys of built-in filters could have clashed with listing field keys.
#260 - [fix] Use the correct translation asset in email templates.
#259 - [fix] When stockType is oneItem: don't show shipping fee for additional items.
#258 - [fix] configHelpers: undefined enumOptions was not handled properly.
#257
v3.4.0
This release adds a new section component SectionHero to PageBuilder. SectionHero component is not yet available through Console, and it is estimated to be available this week. In addition, more configurations are fetched from assets instead of environment variables.
Changes v3.4.0
- [change] Update Console URL from https://flex-console.sharetribe.com to
https://console.sharetribe.com #249 - [change] Remove Flex branding from code comments.
#248 - [change] PageBuilder: make sectionId and blockId optional.
#254 - [fix] PaginationLinks: fix pagination limit handling.
#253 - [add] Add more config assets: analytics, googleSearchConsole, maps, localization.
#252 - [add] SectionHero component added to the PageBuilder.
#244 - [fix] Map integration is mandatory, but let's not allow error loops if not available.
#250
v3.3.0
This release adds support for the sitemap (using the new sitemap API endpoints). You can read more about the new sitemap setup from these links:
This also adds references to updated email texts (a content management concept for email templates). If you have made changes to the transaction processes, you need to update your transaction process with updated email templates to take email texts into use - after which you can start editing those email texts through Console. Check the updated email templates at ext/transaction-processes.
Translations changes
Old translations with updated arguments:
The marketplaceCurrency was passed as argument for these translation keys:
"EditListingPricingAndStockPanel.listingPriceCurrencyInvalid": "The listing currency is different from the marketplace currency ({marketplaceCurrency}). You cannot edit the price.",
"EditListingPricingPanel.listingPriceCurrencyInvalid": "The listing currency is different from the marketplace currency ({marketplaceCurrency}). You cannot edit the price.",
Changes v3.3.0
-
[add] Change transaction process reference to contain updated email templates, which support email
texts (a content management concept for email templates).
#240 -
[fix] CheckoutPage: Fix wrong pending state name at checkout page.
#246 -
[add] This removes old express-sitemap setup and starts generating sitemaps with sitemap package.
- Robots.txt and sitemap-* resources will be generated on request
- There's a small in-memory cache in use for these files.
-
[fix] Prev PR (#241) changed the structure of config.stripe unintentionally.
#242 -
[fix] Ensure that stripe currencies have valid subunit divisors and add subunit divisors for BGN,
CZK, PLN, RON. #241 -
[change] configHelpers.js: remove trailing slash from marketplaceRootURL
#239 -
[fix] webmanifest error should use log and not return 500 if rendering dynamic data fails.
#238
v3.2.0
This adds integration to Plausible analytics and extracts analytics to their own config file: configAnalytics.js #228
This release prepares the template for new logo types managed via hosted assets #214. In addition, the template now generates a site.web.manifest file #215.
Translation changes
No new keys. French, Spanish, and German have updated translations #236
Changes v3.2.0
- [fix] mac OS Sonoma seems to have issues with time zone handling.
#235 - [add] Update translation assets for French, Spanish, and Germany.
#236 - [change] remove caret from react-image-gallery dependency.
#234 - [add] Plausible analytics integration. This can be used through environment variable:
REACT_APP_PLAUSIBLE_DOMAINS #228 - [add] Prepare for appIcon property to come from branding asset. This generates site.webmanifest
file and apple-touch-icon link. #215 - [add] Prepare for configurable Logo variants. Console will support height variants of 24, 36, and
48 pixels. #214 - [change] FieldPhoneNumberInput: change formatter from fi locale to only format E.164. This does
not change input strings that don't start with a '+'.
#233
v3.1.1
Changes v3.1.1
There was a bug when only one listing type was used.
v3.1.0
This adds support for multiple listing types (#217). Essentially it takes the new stockMode filter into use on the SearchPage.duck.js file and changes the EditListingWizard so that tabs are reflected according to the selected listing type.
Note: This prepares this template for the upcoming feature in Console, but if you have already multiple listing types that come from your customized codebase, then this changes a bit how the wizard works.
This also highlights the initial inquiry message more (#213) and adds more translation file references (fr.json, es.json, de.json). Furthermore, if you have added secrets to the public web app, this tries to warn you about them when you are customizing the app.
Translation changes
"ManageListingsPage.createListing": "Post a new listing",
"SearchPage.createListing": "Post a new listing",
"CheckoutPageWithInquiryProcess.initiateInquiryError": "Oops, something went wrong. Please try again. If the problem persists, contact support.",
"CheckoutPageWithInquiryProcess.initiateInquiryErrorNoProcess": "Oops, no transaction process attached to the listing. Please contact support",
Changes v3.1.0
- [fix] Add 2 missing error translations to the en.json file.
#225 - [add] Show warning if an environment variable key that starts with REACT_APP contains the word "SECRET".
#224 - [change] SearchPage.duck.js: use minStock and stockMode for listing.queries if the dates filter is not
in use. #217 - [fix] Handle missing hosted configurations to show Maintenance Mode page
#223 - [add] Add German translation as a reference (de.json) and update other lang files.
#222 - [change] Update browserlist DB (i.e. caniuse-lite entry in yarn.lock file)
#221 - [add] Add Spanish translations as a reference (es.json)
#220 - [fix] EditListingDetailsPanel: namespace listing field inputs to avoid conflicts in input names.
#216 - [add] Add French translations as a reference (fr.json)
#219 - [add] Add a create-listing link to blank slates of SearchPage and ManageListingsPage.
#218 - [change] TransactionPanel/InquiryMessageMaybe: highlight initial inquiry message more.
#213
v3.0.1
v3.0.0
This adds support for a new process: default-inquiry. This new process is a super simple one and it is meant for situations where payments are not supported or where the process needs to be separately developed (i.e. an MVP-style process to test some idea)
Essentially, the default-inquiry process just enables free messaging between the customer and provider. Any payments etc. need to happen face-to-face or somehow outside of the marketplace.
Notes:
- At the moment of this release in the web-template repository, the listing types in Console do not yet support the new process! You might want to wait for it to support the new process before trying to use the default-inquiry process.
- The initial inquiry message is saved to the protected data of the transaction.
- The process has 1 transition
- Price can be configured on/off
- It is then reflected on ListingCard, ListingPage, EditListingWizard, ManageListingCard, and CheckoutPage.
Major changes:
- This will change the CheckoutPage quite much¹.
- SearchMap: SearchMapPriceLabel is empty if the listing is working with an inquiry listing type that doesn't display a price.
- We might introduce a separate label component later.
- Remove en.json file (Biketribe-themed translations) and
- Rename defaultMicrocopy.json (with generic copy-texts) to be the new en.json file².
- server/index.js and server/api/login-as.js use getSdk function from api-util/sdk.js
- ModalMissingReminder: StripeAccountReminder is removed.
- Brand image (for authentication page etc.) is not going to use default from the app but uses hosted image only.
¹ Read more about how the CheckoutPage works from (added) README.md:
https://github.com/sharetribe/web-template/tree/main/src/containers/CheckoutPage
² If you are taking an update from upstream, you might want to check only those translation keys that were added, deleted, or those which got new options for arguments. Those are listed below. The complete list of translation changes to microcopy files looks like this.
Out of those the most important ones for no-code users are these:
New translation keys:
"CheckoutPage.default-inquiry.orderBreakdown": "Order breakdown",
"CheckoutPage.default-inquiry.title": "Send an inquiry to {authorDisplayName}",
"CheckoutPageWithInquiryProcess.messageLabel": "Inquiry message",
"CheckoutPageWithInquiryProcess.messagePlaceholder": "Hello there! I'm interested in…",
"CheckoutPageWithInquiryProcess.messageRequired": "Message is required.",
"CheckoutPageWithInquiryProcess.perUnit": "{unitType, select, day {per day} night {per night} hour {per hour} other {}}",
"CheckoutPageWithInquiryProcess.submitButtonText": "Send inquiry",
"EditListingWizard.default-inquiry.new.saveDetails": "Next: Location",
"EditListingWizard.default-inquiry.new.saveLocation": "Next: Pricing",
"EditListingWizard.default-inquiry.new.saveLocationNoPricingTab": "Next: Photos",
"EditListingWizard.default-inquiry.new.savePhotos": "Publish listing",
"EditListingWizard.default-inquiry.new.savePricing": "Next: Photos",
"InboxPage.default-inquiry.free-inquiry.status": "Free inquiry",
"InquiryWithoutPaymentForm.ctaButton": "Send an inquiry",
"OrderPanel.ctaButtonMessageInquiry": "Send an inquiry",
"SortBy.newest": "Newest",
"SortBy.oldest": "Oldest",
"SortBy.lowestPrice": "Lowest price",
"SortBy.highestPrice": "Highest price",
"SortBy.relevance": "Relevance",
"SortBy.relevanceLong": "Relevance (Keyword search)",
"TransactionPage.ActivityFeed.default-inquiry.free-inquiry": "{actor, select, you {You started a conversation.} other {{otherUsersName} started a conversation.}}",
"TransactionPage.default-inquiry.customer.free-inquiry.title": "You sent an inquiry.",
"TransactionPage.default-inquiry.provider.free-inquiry.title": "You received an inquiry from {customerName}.",
"TransactionPanel.conversationHeading": "Conversation",
"TransactionPanel.inquiryMessageHeading": "Inquiry message",
Old translations with updated arguments:
The unitType argument can now have option inquiry. So, it's possible to add a new sub-message: "inquiry {per bag of potatoes}"
But it needs to be added before "other {}".
"EditListingPricingForm.pricePerProduct": "Price {unitType, select, day {per day} night {per night} hour {per hour} other {}}",
"ListingCard.perUnit": "{unitType, select, day {per day} night {per night} hour {per hour} other {}}",
"OrderPanel.perUnit": "{unitType, select, day {per day} night {per night} hour {per hour} other {}}",
Note: EditListingPricingForm.pricePerProduct changed a bit more:
- "EditListingPricingForm.pricePerProduct": "Price per {unitType, select, day {day} night {night} hour {hour} other {unit}}", + "EditListingPricingForm.pricePerProduct": "Price {unitType, select, day {per day} night {per night} hour {per hour} other {}}",
Deleted translation keys:
"ModalMissingInformation.gotoPaymentSettings": "Add payment details",
"ModalMissingInformation.missingStripeAccountText": "You have listings but your payment details are missing. Your listings are not available until payment details are saved.",
"ModalMissingInformation.missingStripeAccountTitle": "Payment details missing",
Changes 2023-09-04
-
[add] This PR adds a 3rd process (default-inquiry) to the template.
- As a consequence, CheckoutPage has been refactored heavily.
- This removes the en.json file (Biketribe-themed translations) and,
- This renames defaultMicrocopy.json (with generic copy-texts) as the new en.json file.
- This PR 195 branch evolved to be a v3 development branch. It included the following PRs too.
- Read more about the changes from PR:
-
[fix] small UI bug fixes. (The biggest is the removing defaultBranding.brandImageURL)
#209 -
[change] Change the email template name of the default inquiry process.
#208 -
[change] IconSpinner: add delay prop to reduce the fast flicker of the spinner on fast connections.
#207 -
[change] EditListingDetailsPanel: rename setNoAvailabilityForProductListings as
setNoAvailabilityForUnbookableListings #206 -
[fix] ListingPage: use updated CSS rules with react-image-gallery.
#205 -
[change] Use the getSdk function to initialize SDK on server/index.js and server/api/login-as.js.
#201 -
[fix] Add default sort options to en.json (microcopy)
#204 -
[delete] Remove the en.json file (Biketribe-themed translations) and rename defaultMicrocopy.json to
be the new en.json file. #203 -
[change] Updates to the copy texts in the defaultMicrocopy.json file.
#199 -
[fix] asset data denormalization: null values were not handled correctly.
#200
v2.2.0
This release contains bug fixes and it also adds more tests to pages that deal with multiple processes.
Changes v2.2.0
- [fix] CheckoutPage: totalPrice caused an error after inquiry transition.
#197 - [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