Conversation
|
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
…d models consistent in expecting scalars only
…pe of the PR huge
cfe9494 to
1ae50c6
Compare
* added fathom app wrapper, needs script injection to public booking page * new logo * Add Fathom script support on booking pages and add it as an eventTypeapp * Add automation and analytics apps * Add missing pieces for analytics category * Rename BookingPageScripts to BookingPageTagManager Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
…ons' into app-store-cli-event-type-extensions
8973423 to
ace72e4
Compare
leog
left a comment
There was a problem hiding this comment.
Left some comments, nothing blocking I think. Great changes!
| * Use this component to allow installing an app from anywhere on the app. | ||
| * Use of this component requires you to remove custom InstallAppButtonComponent so that it can manage the redirection itself | ||
| */ | ||
| export default function OmniInstallAppButton({ appId, className }: { appId: string; className: string }) { |
There was a problem hiding this comment.
Not sure if I get why we need this sort of button. Does it makes it easier to include anywhere in the app? Like in the app store single category page?
There was a problem hiding this comment.
Yeah, it allows you to install an app from any page on our webapp
| icon: Icon.FiGrid, | ||
| info: `${enabledAppsNumber} ${t("active")}`, | ||
| //TODO: Handle proper translation with count handling | ||
| info: `${installedAppsNumber} apps, ${enabledAppsNumber} ${t("active")}`, |
There was a problem hiding this comment.
This should be easy to do. You could also add a comment if possible next to the translation in common.js to let the translators know where does the string apply, as it is difficult to infer context.
| }) | ||
| ).map((eventType) => ({ | ||
| ...eventType, | ||
| metadata: EventTypeMetaDataSchema.parse(eventType.metadata), |
There was a problem hiding this comment.
Just to be clear, as I saw you renamed metadata to appData at the beginning, metadata in this context is the same as appData? If so, should we rename it everywhere else? I like appData the most as it clearly states the entity that holds that data.
| InstalledAppVariants.calendar, | ||
| InstalledAppVariants.analytics, | ||
| InstalledAppVariants.automation, | ||
| ]} |
There was a problem hiding this comment.
I like the explicitness here 👍
| }, | ||
| }); | ||
|
|
||
| const appsMetadata = formMethods.getValues("metadata")?.apps; |
There was a problem hiding this comment.
Same question about having now two names for the same thing if that's what it is. IMHO introducing new names should rename everything, otherwise we will end up confusing names.
There was a problem hiding this comment.
Agreed, eventType.metadata.apps should be called appData
zomars
left a comment
There was a problem hiding this comment.
This PR is a bold move. But a welcome one nonetheless. Let's ship this to staging and test the heck out of it before going to prod on Monday.
Impressive work @hariombalhara 🙏

What does this PR do?
Fixes #4221 #4700 #4791 #4792
Also, review https://app.gitbook.com/o/6snd8PyPYMhg0wUw6CeQ/s/VXRprBTuMlihk37NQgUU/~/changes/6xkqZ4qvJ3Xh9k8UaWaZ/engineering/product-specs/app-store#user-apps docs. Will keep on updating it as and when required.
Note: This PR also deletes some V1 files whose V2 versions I was modifying.
Also adds fathom app through the merge of #4804
Important
Recovery Plan in case the issue comes
Design Principle-1: One App shouldn't break another App.
e.g. why should Stripe App issue make other Apps unavailable?
metadata.appsnamespace. This avoids the chances of one app breaking the other app with name conflicts on properties.eventType.priceandeventType.currencytostripeAppData.priceandstripeData.currency- This requires testing of all pages involved as payment is an important flow.Design Principle-2: While adding a new app, the developer shouldn't worry about code beyond the app directory
Design Principle-3: Adding new apps and maintenance should be easy. See Loom
extensionsin AppStore(to extend EventTypes, Routing Forms and other features) that can be specified usingextendsFeatureproperty. Currently it supports only EventType.-
EventTypeAppCard.tsxfile would automatically be generated for Apps withextendsFeatureset toEventType-
zod.tswould also be generated that would allow the app to expose the data it wants to store in eventType.metadata asappDataSchemaexport- apps.browser.generated.tsx would have the required exports automatically generated for ease of use.
Design Principle-4: Easy discoverability of apps(See Loom)
OmniInstallAppButtonfrom the AppsTab page itself. Giphy and Rainbow would be one click but because stripe requires authentication it can't be one click.Other Fixes
Before:

After:Before:

After:

Type of change
How should this be tested?
Checklist