mirror of
https://github.com/XFox111/TabsAsideExtension.git
synced 2026-04-22 07:58:01 +03:00
feat: Minor 3.1.0 (#150)
* Some features are now optional (#148) * fix(dev): yarn.lock tree fix * feat: bookmarks moved to optional permissions * fix: analytics not working in firefox * feat!: ability to turn off analytics (uses permissions on firefox) * feat: analytics tracker for bookmark export * feat: add privacy policy link in about section * docs: privacy policy update * feat: ability to chain multiple dialogs * fix(loc): analytics option translation * feat: settings review dialog * fix: background script fails to load because of frontend code * chore: use analytics permission as storage value * fix: inverted analytics value * feat!: option to disable thumbnail capture * fix(ci): sed typo * fix: minor fixes * fix(firefox): web-ext lint error fix * chore(ci): switch web-ext action * chore(lint): fix eslint warnings * chore(deps): monthly dependency bump (September 2025) (#149) * chore: 3.1.0 version bump * chore: minor cleanup * fix: allow analytics checkbox stays inactive after denying permission on firefox * fix(deps): yarn.lock rebuild * fix: type assertion for userId * fix: settings review dialog not showing if welcome dialog is not required * fix: analytics and thumbnail capture toggles react incorrectly if permission is denied
This commit is contained in:
@@ -1,3 +1,55 @@
|
||||
export { default as userPropertiesStorage } from "./utils/userPropertiesStorage";
|
||||
export { default as trackError } from "./utils/trackError";
|
||||
export { default as track } from "./utils/track";
|
||||
import { analytics } from "./utils/analytics";
|
||||
import analyticsPermission from "./utils/analyticsPermission";
|
||||
import { getUserProperties, userId } from "./utils/getUserProperties";
|
||||
|
||||
export { analyticsPermission };
|
||||
|
||||
export async function track(eventName: string, eventProperties?: Record<string, string>): Promise<void>
|
||||
{
|
||||
try
|
||||
{
|
||||
if (!await analyticsPermission.getValue())
|
||||
return;
|
||||
|
||||
analytics.track(eventName, eventProperties);
|
||||
}
|
||||
catch (ex)
|
||||
{
|
||||
console.error("Failed to send analytics event", ex);
|
||||
}
|
||||
}
|
||||
|
||||
export async function trackError(name: string, error: Error): Promise<void>
|
||||
{
|
||||
try
|
||||
{
|
||||
if (!await analyticsPermission.getValue())
|
||||
return;
|
||||
|
||||
analytics.track(name, {
|
||||
name: error.name,
|
||||
message: error.message,
|
||||
stack: error.stack ?? "no_stack"
|
||||
});
|
||||
}
|
||||
catch (ex)
|
||||
{
|
||||
console.error("Failed to send error report", ex);
|
||||
}
|
||||
}
|
||||
|
||||
export async function trackPage(pageName: string): Promise<void>
|
||||
{
|
||||
try
|
||||
{
|
||||
if (!await analyticsPermission.getValue())
|
||||
return;
|
||||
|
||||
analytics.identify(await userId.getValue() as string, await getUserProperties());
|
||||
analytics.page(pageName);
|
||||
}
|
||||
catch (ex)
|
||||
{
|
||||
console.error("Failed to send page view", ex);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user