Setup usage metrics
This commit is contained in:
parent
377dfd5d30
commit
6745786e9f
@ -71,6 +71,11 @@ export interface UserPreferences {
|
||||
* Proof-of-Work to apply to all events
|
||||
*/
|
||||
pow?: number;
|
||||
|
||||
/**
|
||||
* Collect usage metrics
|
||||
*/
|
||||
telemetry?: boolean;
|
||||
}
|
||||
|
||||
export const DefaultPreferences = {
|
||||
@ -87,4 +92,5 @@ export const DefaultPreferences = {
|
||||
defaultRootTab: "notes",
|
||||
defaultZapAmount: 50,
|
||||
autoZap: false,
|
||||
telemetry: true,
|
||||
} as UserPreferences;
|
||||
|
@ -20,6 +20,12 @@ import QrCode from "Element/QrCode";
|
||||
import Copy from "Element/Copy";
|
||||
import { delay } from "SnortUtils";
|
||||
|
||||
declare global {
|
||||
interface Window {
|
||||
plausible?: (tag: string) => void
|
||||
}
|
||||
}
|
||||
|
||||
interface ArtworkEntry {
|
||||
name: string;
|
||||
pubkey: HexKey;
|
||||
@ -112,6 +118,7 @@ export default function LoginPage() {
|
||||
|
||||
async function makeRandomKey() {
|
||||
await generateNewLogin();
|
||||
window.plausible?.("Generate Account")
|
||||
navigate("/new");
|
||||
}
|
||||
|
||||
|
@ -128,6 +128,23 @@ const PreferencesPage = () => {
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div className="flex f-space w-max">
|
||||
<div className="flex-column g8">
|
||||
<h4>
|
||||
<FormattedMessage defaultMessage="Send usage metrics" />
|
||||
</h4>
|
||||
<small>
|
||||
<FormattedMessage defaultMessage="Send anonymous usage metrics" />
|
||||
</small>
|
||||
</div>
|
||||
<div>
|
||||
<input
|
||||
type="checkbox"
|
||||
checked={perf.telemetry ?? true}
|
||||
onChange={e => updatePreferences(login, { ...perf, telemetry: e.target.checked })}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div className="flex w-max">
|
||||
<div className="flex-column g8">
|
||||
<h4>
|
||||
|
@ -115,6 +115,16 @@ async function initSite() {
|
||||
} catch (e) {
|
||||
console.error("Failed to register protocol handler", e);
|
||||
}
|
||||
|
||||
// inject analytics script
|
||||
// <script defer data-domain="snort.social" src="http://analytics.v0l.io/js/script.js"></script>
|
||||
if (login.preferences.telemetry ?? true) {
|
||||
const sc = document.createElement("script");
|
||||
sc.src = "http://analytics.v0l.io/js/script.js";
|
||||
sc.defer = true;
|
||||
sc.setAttribute("data-domain", "snort.social");
|
||||
document.head.appendChild(sc);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user