diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/app.js | 5 | ||||
| -rw-r--r-- | src/features/hats.js | 2 | ||||
| -rw-r--r-- | src/i18n.js | 1 |
3 files changed, 8 insertions, 0 deletions
@@ -381,6 +381,11 @@ function footer() { 'div', { style: 'margin-top:4px' }, h('button', { class: 'linklike', style: 'font-weight:400', onClick: openHowItWorks }, t('howItWorks')), + // the hat shop: needs a wallet to pay from, so only once one is open + activeAccount() && FEATURES.some((f) => f.openHatShop) + ? h('span', {}, h('span', { class: 'faint' }, ' ยท '), + h('button', { class: 'linklike', style: 'font-weight:400', onClick: () => { clearFeatureNav(); ui.screen = 'wallet'; featureHook('openHatShop'); } }, t('footerSupport'))) + : null, // Chrome no longer prompts to install on its own โ surface our own link // once it reports the app is installable. We render from a persisted flag // (not the live event) so the link is present on the first paint after a diff --git a/src/features/hats.js b/src/features/hats.js index 16849f2..a14fc2b 100644 --- a/src/features/hats.js +++ b/src/features/hats.js @@ -438,6 +438,8 @@ export function hatsFeature(ctx) { node, h('span', { class: 'ava-hat', style: posStyle(hat), html: hat.art })); }, + // The footer's "Show your support" link: straight into the shop. + openHatShop() { openShop(); try { window.scrollTo(0, 0); } catch {} return true; }, // Own-profile editor entry: the door to the shop. hatShopEntry() { return h('button', { diff --git a/src/i18n.js b/src/i18n.js index 0ec6366..e6452e1 100644 --- a/src/i18n.js +++ b/src/i18n.js @@ -658,6 +658,7 @@ const STR = { profSaved: 'Profile published', hats: 'Hats', hatShopSupport: 'Support Coinos, Buy a Hat!', + footerSupport: 'Show your support', hatShopTitle: 'Hat shop', hatShopBlurb: 'Support Coinos and wear the proof on your avatar.', hatShopOffline: 'The hat stand is unreachable right now.', |
