Skip to content

Releases: sharetribe/web-template

v3.5.0

12 Dec 13:27
e7f10c9
Compare
Choose a tag to compare

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

23 Oct 12:11
ebc10a4
Compare
Choose a tag to compare

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

17 Oct 11:24
23309e7
Compare
Choose a tag to compare

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.

    #243

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

04 Oct 12:08
116a7e1
Compare
Choose a tag to compare

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

22 Sep 13:06
1a7c326
Compare
Choose a tag to compare

Changes v3.1.1

There was a bug when only one listing type was used.

  • [fix] Single listing type caused a problem on the EditListingWizard.
    #231
  • [fix] ManageListingCard: fix wrong (non-existent) classname.
    #230
  • [add] util/api.js: Added rudimentary support for other HTTP Methods. There's a new 'request'
    function, which is easier to extend. #229

v3.1.0

21 Sep 09:57
208f2a1
Compare
Choose a tag to compare

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

06 Sep 10:27
304c8fc
Compare
Choose a tag to compare

Changes v3.0.1

  • [fix] CheckoutPage/ErrorMessages: add missing css import.
    #211

v3.0.0

04 Sep 11:53
9b5b728
Compare
Choose a tag to compare

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:

    195

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

09 Aug 12:26
d5f7913
Compare
Choose a tag to compare

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

v2.1.1

26 Jun 11:01
ae56678
Compare
Choose a tag to compare

Changes v2.1.1

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