From 9d957e45419eb44d7e2789ca3348f51c20d9e231 Mon Sep 17 00:00:00 2001 From: Viktor Varenik Date: Sat, 4 Apr 2026 22:29:55 +0300 Subject: [PATCH 1/2] feat: initial PWA support + add important logos/icons --- public/banner.svg | 17 +++++++++++++++++ public/favicon-96x96.png | Bin 0 -> 2407 bytes public/favicon.ico | Bin 0 -> 15086 bytes public/favicon.svg | 1 + public/logo_light.svg | 20 ++++++++++++++++++++ public/logo_tinted.svg | 17 +++++++++++++++++ public/manifest.json | 24 ++++++++++++++++++++++++ public/web-app-manifest-192x192.png | Bin 0 -> 5058 bytes public/web-app-manifest-512x512.png | Bin 0 -> 16732 bytes src/app/favicon.ico | Bin 25931 -> 4286 bytes src/app/layout.tsx | 2 ++ 11 files changed, 81 insertions(+) create mode 100644 public/banner.svg create mode 100644 public/favicon-96x96.png create mode 100644 public/favicon.ico create mode 100644 public/favicon.svg create mode 100644 public/logo_light.svg create mode 100644 public/logo_tinted.svg create mode 100644 public/manifest.json create mode 100644 public/web-app-manifest-192x192.png create mode 100644 public/web-app-manifest-512x512.png diff --git a/public/banner.svg b/public/banner.svg new file mode 100644 index 0000000..db8bdf6 --- /dev/null +++ b/public/banner.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/public/favicon-96x96.png b/public/favicon-96x96.png new file mode 100644 index 0000000000000000000000000000000000000000..a907c817b1d399e218d3e19b7316af5eb31b2219 GIT binary patch literal 2407 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 literal 0 HcmV?d00001 diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..d70ba4d11ba01f4df0803dae7802302ba9e9c02a GIT binary patch literal 15086 zcmeI3X-o7-5XZCZet_pA_-0{WKHz=d_kG{@wfI6s5ET?WK*jq2QAAN+Eq7=K->tB`Xs_N?2Fn%+BH-7#!Vs(M>&!2`-Vi-n2!T;|+4CCKe z+mBey?|=Vc7^krgf5rO5h8T0PLc7~vVPT=lm%I$}I*^(Ubar;Cv9U4L*Vm`Y%F1$T zP4)Kns+E%qjc}3kz}V!bf#=b->_xI-vcCmX^ zRaGVrtY2vhS|bN|Z)FKFzXlMvbzo)0i@(l+E2LsO$ z1Ur4f{{8)(P{QC}TwJu^#|}hohtr9FX=y2E@ndUeXJ;+=b47n@YHHNz=%~Wy;RiFh zepA&S($;r75rcqxrbTrb}V7u!{WzRh};_+8zZ-qZoGxTpKYDd zc?pUixepHytLf=!l})(|4?*yY&ipFa;lU06#>R#swve*CysWmjx7FU>o?2U5i?{Q; z$RZoH8-Ayl!mTZvv1+d4KRG!`h~3=e?A9KY{7XtoJav=U@Z#bkBlye9%T-ZPktZHm zKkOYOmL;E1T3YHj4*Pd^cjt)z{QO)U9v;Ta?(VK-&C0r__VT^po|u?0<2vHg_V#v1 zEP|c>vj3Kv@zAgr{HGiK_4W0Hd0JarRegPZ!aVkQ^>@K8Sg0#1DqMMBtlrn_d3AL) z5Pq+@g8T+Xk+;2el0R}r*X@OUZV>s`*48TKPgZm~_-Z?EjJM;~-_xQ0cKspF^t=9a zEZ7jn!UJoixw+XByM3(w?(}?ldFi-*b^Q3=AatGRgyG$39=(k?^6Ki!5&zE4j)DgY z^3&I()3ZKrCZ1)_cYS^Bh~LduxwR87Wdb)eSckH2N{9c2r%d4oJ3bA&j4e+`{1Y{P zasuR+S^vcDW?B;Rzn3pilS&Vh3sSQ!`H#`j4#b{=+K< zAx5A-x)lYUpmP%2+VQ*j?~aZROJClD(o1)LVo&m7!h=_=E-|b0WzD1;PuThJRbFui zd(8I(@Nhuz;}E3{3vY>xjFI0*@)vfdlmZZS)%0CX>R>K2=@w{`b5=4oaW>RJQ07m!lt&6Ue0eg*NLm zop!>H{Dn4pmrmM#^pA7M?(S{{ZLeH-7~M-oKWf@e^!Xm-FpiFn)Y;jYc|S_>8-DFW z5LpDtDMpcZdwhKKozo0UpR)t@m*n$w*m6=jToPfejHm^78Uxp|9uC!Hn+Pi;Sn%?~+1G=t`~AM}NqtNf{a%QeO1& z%hK1aW=`SHEp~8|KY2;J{Dpt+XW74(@TAw+CeCe;h2HMxnXyk#PZs&hSpYU(e6wEr znb%JrXp=X1czCeTcgxvJyOR$3p{MuZJOO#}y>4!9GDaWloDXq-Sp1mX{|KLMby)uK z9ipeyO-)U4eUb0W87Vngd3URIS^9k@Kcuf!yD#H=fQ!3ve&-C@k2~7f1N*vS@1e_v zcsS_XsrHxLKXGuXbA=tBOLy4A@|dY{vGhPz|HxCs{>9A9Rb)C(!JY^^WnbfdWsluq zJ>qlyj?w!OC++X=C+yAe!{n>=zE01tudk+0(9aX#g?It`lq}aRcb5eW>s#{q-9E y!RealFaviconGeneratorhttps://realfavicongenerator.net \ No newline at end of file diff --git a/public/logo_light.svg b/public/logo_light.svg new file mode 100644 index 0000000..b0ffe4f --- /dev/null +++ b/public/logo_light.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/public/logo_tinted.svg b/public/logo_tinted.svg new file mode 100644 index 0000000..a706ae8 --- /dev/null +++ b/public/logo_tinted.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/public/manifest.json b/public/manifest.json new file mode 100644 index 0000000..06825f7 --- /dev/null +++ b/public/manifest.json @@ -0,0 +1,24 @@ +{ + "name": "Friendly", + "short_name": "Friendly", + "description": "Private social network. Make new friends!", + "id" : "friendly_web_app", + "start_url": "/", + "display": "minimal-ui", + "background_color": "#f2f7ff", + "theme_color": "#007aff", + "icons": [ + { + "src": "/web-app-manifest-192x192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "any" + }, + { + "src": "/web-app-manifest-512x512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "any" + } + ] +} \ No newline at end of file diff --git a/public/web-app-manifest-192x192.png b/public/web-app-manifest-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..d5a1b76908075156cde77efec126fcae708c6f5b GIT binary patch literal 5058 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 RoEwAyT59^LZ{|hACIs*Uz literal 0 HcmV?d00001 diff --git a/public/web-app-manifest-512x512.png b/public/web-app-manifest-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..401fedfc997e543d0c3d1253f36250932a486ee8 GIT binary patch literal 16732 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 LrJugUA?W`A8`#=m diff --git a/src/app/layout.tsx b/src/app/layout.tsx index d1a4dd3..b93a98c 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -9,6 +9,7 @@ import {SessionProvider} from '@/components/session-provider'; export const metadata: Metadata = { title: 'Friendly Web', description: 'Web client for Friendly', + manifest: '/manifest.json', }; export default function RootLayout({ @@ -23,6 +24,7 @@ export default function RootLayout({ name="viewport" content="initial-scale=1, width=device-width" /> + From afe3f808361b1ebf2e3df1e8cb3a148c34c663dd Mon Sep 17 00:00:00 2001 From: Viktor Varenik Date: Sat, 4 Apr 2026 22:55:37 +0300 Subject: [PATCH 2/2] chore: mitigate PWA data persistancy on iOS (mb android) --- public/apple-touch-icon.png | Bin 0 -> 4752 bytes src/app/layout.tsx | 3 +++ src/lib/cookies.ts | 2 +- 3 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 public/apple-touch-icon.png diff --git a/public/apple-touch-icon.png b/public/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..cc65088338348920c76d93d59108fdcdc110b531 GIT binary patch literal 4752 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 r)1D2d7Lv}-S#DxopbGuN$vJ$U{ + + + diff --git a/src/lib/cookies.ts b/src/lib/cookies.ts index 9eeceb8..a4b65fc 100644 --- a/src/lib/cookies.ts +++ b/src/lib/cookies.ts @@ -7,7 +7,7 @@ export function setCookie(key: string, value: T, days: number = 7): void { const expires = `expires=${date.toUTCString()}`; const stringValue = JSON.stringify(value); - document.cookie = `${key}=${encodeURIComponent(stringValue)}; ${expires}; path=/; SameSite=Lax`; + document.cookie = `${key}=${encodeURIComponent(stringValue)}; ${expires}; path=/; SameSite=None; Secure`; } export function getCookie(key: string): T | null {