1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
|
/*
This file is part of GNU Taler
(C) 2022 Taler Systems S.A.
GNU Taler is free software; you can redistribute it and/or modify it under the
terms of the GNU General Public License as published by the Free Software
Foundation; either version 3, or (at your option) any later version.
GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with
GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
*/
/**
* Welcome page, shown on first installs.
*
* @author sebasjm
*/
import { WalletDiagnostics } from "@gnu-taler/taler-util";
import { Fragment, h, VNode } from "preact";
import { Checkbox } from "../components/Checkbox.js";
import { SubTitle, Title } from "../components/styled/index.js";
import { useTranslationContext } from "@gnu-taler/web-util/browser";
import { useSettings } from "../hooks/useSettings.js";
import { ToggleHandler } from "../mui/handlers.js";
import { platform } from "../platform/foreground.js";
import { useAlertContext } from "../context/alert.js";
export function WelcomePage(): VNode {
const [settings, updateSettings] = useSettings();
const { safely } = useAlertContext();
return (
<View
permissionToggle={{
value: settings.injectTalerSupport,
button: {
onClick: safely("update support injection", async () =>
updateSettings("injectTalerSupport", !settings.injectTalerSupport),
),
},
}}
/>
);
}
export interface ViewProps {
permissionToggle: ToggleHandler;
}
export function View({
permissionToggle,
}: ViewProps): VNode {
const { i18n } = useTranslationContext();
return (
<Fragment>
<Title>
<i18n.Translate>Browser Extension Installed!</i18n.Translate>
</Title>
<div>
<p>
<i18n.Translate>
You can open the GNU Taler Wallet using the combination{" "}
<pre style="font-weight: bold; display: inline;"><ALT+W></pre>
.
</i18n.Translate>
</p>
{!platform.isFirefox() && (
<Fragment>
<p>
<i18n.Translate>
Also pinning the GNU Taler Wallet to your Chrome browser allows
you to quick access without keyboard:
</i18n.Translate>
</p>
<ol style={{ paddingLeft: 40 }}>
<li>
<i18n.Translate>Click the puzzle icon</i18n.Translate>
</li>
<li>
<i18n.Translate>Search for GNU Taler Wallet</i18n.Translate>
</li>
<li>
<i18n.Translate>Click the pin icon</i18n.Translate>
</li>
</ol>
</Fragment>
)}
<SubTitle>
<i18n.Translate>Navigator</i18n.Translate>
</SubTitle>
<Checkbox
label={i18n.str`Inject Taler support in all pages`}
name="inject"
description={
<i18n.Translate>
Disabling this option will make some web application not able to
trigger the wallet when clicking links but you will be able to
open the wallet using the keyboard shortcut
</i18n.Translate>
}
enabled={permissionToggle.value!}
onToggle={permissionToggle.button.onClick!}
/>
<SubTitle>
<i18n.Translate>Next Steps</i18n.Translate>
</SubTitle>
<a href="https://demo.taler.net/" style={{ display: "block" }}>
<i18n.Translate>Try the demo</i18n.Translate> »
</a>
<a href="https://demo.taler.net/" style={{ display: "block" }}>
<i18n.Translate>
Learn how to top up your wallet balance
</i18n.Translate>{" "}
»
</a>
</div>
</Fragment>
);
}
|