aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/pleroma/webview.js
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/pleroma/webview.js')
-rw-r--r--recipes/pleroma/webview.js42
1 files changed, 25 insertions, 17 deletions
diff --git a/recipes/pleroma/webview.js b/recipes/pleroma/webview.js
index da76955..2ba184e 100644
--- a/recipes/pleroma/webview.js
+++ b/recipes/pleroma/webview.js
@@ -1,6 +1,6 @@
1const titleRegex = /^\((\d+)\)/; 1const titleRegex = /^\((\d+)\)/;
2 2
3const getJson = async (relativeUri) => { 3const getJson = async relativeUri => {
4 const req = await window.fetch(`${window.origin}${relativeUri}`, { 4 const req = await window.fetch(`${window.origin}${relativeUri}`, {
5 Accept: 'application/json', 5 Accept: 'application/json',
6 }); 6 });
@@ -8,10 +8,11 @@ const getJson = async (relativeUri) => {
8}; 8};
9 9
10const getInstanceConfig = async () => { 10const getInstanceConfig = async () => {
11 const origin = window.origin;
12 const staticConfig = await getJson('/static/config.json'); 11 const staticConfig = await getJson('/static/config.json');
13 try { 12 try {
14 const frontendConfig = await getJson('/api/pleroma/frontend_configurations'); 13 const frontendConfig = await getJson(
14 '/api/pleroma/frontend_configurations',
15 );
15 const pleromaFeConfig = frontendConfig.pleroma_fe || {}; 16 const pleromaFeConfig = frontendConfig.pleroma_fe || {};
16 return { ...staticConfig, ...pleromaFeConfig }; 17 return { ...staticConfig, ...pleromaFeConfig };
17 } catch (e) { 18 } catch (e) {
@@ -33,8 +34,12 @@ const getInstanceLogo = async () => {
33 logoMask: config.logoMask, 34 logoMask: config.logoMask,
34 }); 35 });
35 }); 36 });
36 img.addEventListener('error', (event) => { 37 img.addEventListener('error', event => {
37 reject(new Error(`${event.type} error loading ${config.logo}: ${event.message}`)); 38 reject(
39 new Error(
40 `${event.type} error loading ${config.logo}: ${event.message}`,
41 ),
42 );
38 }); 43 });
39 img.src = `${origin}${config.logo}`; 44 img.src = `${origin}${config.logo}`;
40 }); 45 });
@@ -146,16 +151,19 @@ module.exports = Ferdi => {
146 Ferdi.setBadge(directCount); 151 Ferdi.setBadge(directCount);
147 }; 152 };
148 153
149 getInstanceLogo().then(({ logo, logoMask }) => { 154 getInstanceLogo().then(
150 const updater = new LogoUpdater(logo, logoMask); 155 ({ logo, logoMask }) => {
151 Ferdi.loop(() => { 156 const updater = new LogoUpdater(logo, logoMask);
152 getMessages(); 157 Ferdi.loop(() => {
153 if (updater.update()) { 158 getMessages();
154 Ferdi.setAvatarImage(updater.toDataURL()); 159 if (updater.update()) {
155 } 160 Ferdi.setAvatarImage(updater.toDataURL());
156 }); 161 }
157 }, (e) => { 162 });
158 console.log('Failed to load instance logo', e); 163 },
159 Ferdi.loop(getMessages); 164 e => {
160 }); 165 console.log('Failed to load instance logo', e);
166 Ferdi.loop(getMessages);
167 },
168 );
161}; 169};