diff options
author | Ansh <anshnanda10@gmail.com> | 2023-06-15 14:45:14 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-06-15 16:45:14 -0500 |
commit | 17e7590bcd36f9ec3433cb2714a9319fac4aeebf (patch) | |
tree | 71edb7056abedd460d275944711e4fc001a2ffe6 /src/lib/analytics/types.ts | |
parent | 1695ae34dbd08432f21f524ed32ad7012bfb201e (diff) | |
download | voidsky-17e7590bcd36f9ec3433cb2714a9319fac4aeebf.tar.zst |
[APP-511] metrics overhaul: frontend work (#506)
* WIP * fix types and update imports * wip * tagged events that should be server side * remove server-side analytics * remove useless import * add additional profile header events * remove useless import * track follow/unfollow clicks * add missing types
Diffstat (limited to 'src/lib/analytics/types.ts')
-rw-r--r-- | src/lib/analytics/types.ts | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/src/lib/analytics/types.ts b/src/lib/analytics/types.ts new file mode 100644 index 000000000..0638c6b77 --- /dev/null +++ b/src/lib/analytics/types.ts @@ -0,0 +1,98 @@ +export type TrackEvent = ( + event: keyof TrackPropertiesMap, + properties?: TrackPropertiesMap[keyof TrackPropertiesMap], +) => Promise<void> + +export type ScreenEvent = ( + name: keyof ScreenPropertiesMap, + properties?: ScreenPropertiesMap[keyof ScreenPropertiesMap], +) => Promise<void> +interface TrackPropertiesMap { + // LOGIN / SIGN UP events + 'Sign In': {resumedSession: boolean} // CAN BE SERVER + 'Create Account': {} // CAN BE SERVER + 'Signin:PressedForgotPassword': {} + 'Signin:PressedSelectService': {} + // COMPOSER / CREATE POST events + 'Create Post': {imageCount: string} // CAN BE SERVER + 'Composer:PastedPhotos': {} + 'Composer:CameraOpened': {} + 'Composer:GalleryOpened': {} + 'HomeScreen:PressCompose': {} + 'ProfileScreen:PressCompose': {} + // EDIT PROFILE events + 'EditHandle:ViewCustomForm': {} + 'EditHandle:ViewProvidedForm': {} + 'EditHandle:SetNewHandle': {} + 'EditProfile:AvatarSelected': {} + 'EditProfile:BannerSelected': {} + 'EditProfile:Save': {} // CAN BE SERVER + // FEED events + 'Feed:onRefresh': {} + 'Feed:onEndReached': {} + // FEED ITEM events + 'FeedItem:PostReply': {} // CAN BE SERVER + 'FeedItem:PostRepost': {} // CAN BE SERVER + 'FeedItem:PostLike': {} // CAN BE SERVER + 'FeedItem:PostDelete': {} // CAN BE SERVER + 'FeedItem:ThreadMute': {} // CAN BE SERVER + // PROFILE HEADER events + 'ProfileHeader:EditProfileButtonClicked': {} + 'ProfileHeader:FollowersButtonClicked': {} + 'ProfileHeader:FollowsButtonClicked': {} + 'ProfileHeader:ShareButtonClicked': {} + 'ProfileHeader:MuteAccountButtonClicked': {} + 'ProfileHeader:UnmuteAccountButtonClicked': {} + 'ProfileHeader:ReportAccountButtonClicked': {} + 'ProfileHeader:AddToListsButtonClicked': {} + 'ProfileHeader:BlockAccountButtonClicked': {} + 'ProfileHeader:UnblockAccountButtonClicked': {} + 'ProfileHeader:FollowButtonClicked': {} + 'ProfileHeader:UnfollowButtonClicked': {} + 'ViewHeader:MenuButtonClicked': {} + // SETTINGS events + 'Settings:SwitchAccountButtonClicked': {} + 'Settings:AddAccountButtonClicked': {} + 'Settings:ChangeHandleButtonClicked': {} + 'Settings:InvitecodesButtonClicked': {} + 'Settings:ContentfilteringButtonClicked': {} + 'Settings:SignOutButtonClicked': {} + 'Settings:ContentlanguagesButtonClicked': {} + // MENU events + 'Menu:ItemClicked': {url: string} + 'Menu:FeedbackClicked': {} + // MOBILE SHELL events + 'MobileShell:MyProfileButtonPressed': {} + 'MobileShell:HomeButtonPressed': {} + 'MobileShell:SearchButtonPressed': {} + 'MobileShell:NotificationsButtonPressed': {} + 'MobileShell:FeedsButtonPressed': {} + // LISTS events + 'Lists:onRefresh': {} + 'Lists:onEndReached': {} + 'CreateMuteList:AvatarSelected': {} + 'CreateMuteList:Save': {} // CAN BE SERVER + // CUSTOM FEED events + 'MultiFeed:onEndReached': {} + 'MultiFeed:onRefresh': {} + // MODERATION events + 'Moderation:ContentfilteringButtonClicked': {} +} + +interface ScreenPropertiesMap { + Login: {} + CreateAccount: {} + 'Choose Account': {} + 'Signin:ForgotPassword': {} + 'Signin:SetNewPasswordForm': {} + 'Signin:PasswordUpdatedForm': {} + Feed: {} + Notifications: {} + Profile: {} + Settings: {} + AppPasswords: {} + Moderation: {} + BlockedAccounts: {} + MutedAccounts: {} + SavedFeeds: {} +} |