fix: reverse FAB menu order + persist iOS PWA session
- FAB menu items reordered so Task is closest to button (top), Search is furthest (bottom) - auth.ts: session maxAge=30d + updateAge=1d so the JWT cookie is written as a persistent cookie (Max-Age header), preventing iOS PWA from losing the session when the app is closed/backgrounded v1.81.5
This commit is contained in:
parent
ef7fbf4a9c
commit
3657fb284f
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "my-weekly-todo-list",
|
"name": "my-weekly-todo-list",
|
||||||
"version": "1.81.4",
|
"version": "1.81.5",
|
||||||
"description": "A web-based weekly task management application that organizes to-dos and calendar events in a single, intuitive weekly view",
|
"description": "A web-based weekly task management application that organizes to-dos and calendar events in a single, intuitive weekly view",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
@ -8942,9 +8942,17 @@ export default function WeeklyView() {
|
|||||||
)}
|
)}
|
||||||
{showMobileFabMenu && (
|
{showMobileFabMenu && (
|
||||||
<div className="mobile-fab-menu">
|
<div className="mobile-fab-menu">
|
||||||
<button className="mobile-fab-menu-item" onClick={() => { setShowMobileFabMenu(false); setShowMobileFabSheet(true); }}>
|
<button className="mobile-fab-menu-item" onClick={() => { setShowMobileFabMenu(false); setIsSearchOpen(true); }}>
|
||||||
<div className="mobile-fab-menu-icon" style={{ background: "#0ea5e9" }}><Plus size={18} /></div>
|
<div className="mobile-fab-menu-icon" style={{ background: "#10b981" }}><Search size={18} /></div>
|
||||||
<span>{profile.language === "de" ? "Aufgabe" : "Task"}</span>
|
<span>{profile.language === "de" ? "Suchen" : "Search"}</span>
|
||||||
|
</button>
|
||||||
|
<button className="mobile-fab-menu-item" onClick={() => { setShowMobileFabMenu(false); setShowFocusMode(true); }}>
|
||||||
|
<div className="mobile-fab-menu-icon" style={{ background: "#f59e0b" }}><Zap size={18} /></div>
|
||||||
|
<span>{profile.language === "de" ? "Fokus" : "Focus"}</span>
|
||||||
|
</button>
|
||||||
|
<button className="mobile-fab-menu-item" onClick={() => { setShowMobileFabMenu(false); setShowProjectsSidebar(true); }}>
|
||||||
|
<div className="mobile-fab-menu-icon" style={{ background: "#6366f1" }}><FolderPlus size={18} /></div>
|
||||||
|
<span>{profile.language === "de" ? "Projekt" : "Project"}</span>
|
||||||
</button>
|
</button>
|
||||||
<button className="mobile-fab-menu-item" onClick={() => {
|
<button className="mobile-fab-menu-item" onClick={() => {
|
||||||
setShowMobileFabMenu(false);
|
setShowMobileFabMenu(false);
|
||||||
@ -8954,17 +8962,9 @@ export default function WeeklyView() {
|
|||||||
<div className="mobile-fab-menu-icon" style={{ background: "#8b5cf6" }}><Calendar size={18} /></div>
|
<div className="mobile-fab-menu-icon" style={{ background: "#8b5cf6" }}><Calendar size={18} /></div>
|
||||||
<span>{profile.language === "de" ? "Termin" : "Event"}</span>
|
<span>{profile.language === "de" ? "Termin" : "Event"}</span>
|
||||||
</button>
|
</button>
|
||||||
<button className="mobile-fab-menu-item" onClick={() => { setShowMobileFabMenu(false); setShowProjectsSidebar(true); }}>
|
<button className="mobile-fab-menu-item" onClick={() => { setShowMobileFabMenu(false); setShowMobileFabSheet(true); }}>
|
||||||
<div className="mobile-fab-menu-icon" style={{ background: "#6366f1" }}><FolderPlus size={18} /></div>
|
<div className="mobile-fab-menu-icon" style={{ background: "#0ea5e9" }}><Plus size={18} /></div>
|
||||||
<span>{profile.language === "de" ? "Projekt" : "Project"}</span>
|
<span>{profile.language === "de" ? "Aufgabe" : "Task"}</span>
|
||||||
</button>
|
|
||||||
<button className="mobile-fab-menu-item" onClick={() => { setShowMobileFabMenu(false); setShowFocusMode(true); }}>
|
|
||||||
<div className="mobile-fab-menu-icon" style={{ background: "#f59e0b" }}><Zap size={18} /></div>
|
|
||||||
<span>{profile.language === "de" ? "Fokus" : "Focus"}</span>
|
|
||||||
</button>
|
|
||||||
<button className="mobile-fab-menu-item" onClick={() => { setShowMobileFabMenu(false); setIsSearchOpen(true); }}>
|
|
||||||
<div className="mobile-fab-menu-icon" style={{ background: "#10b981" }}><Search size={18} /></div>
|
|
||||||
<span>{profile.language === "de" ? "Suchen" : "Search"}</span>
|
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
|
|||||||
@ -87,7 +87,9 @@ export const authOptions: NextAuthOptions = {
|
|||||||
],
|
],
|
||||||
debug: true,
|
debug: true,
|
||||||
session: {
|
session: {
|
||||||
strategy: "jwt"
|
strategy: "jwt",
|
||||||
|
maxAge: 30 * 24 * 60 * 60, // 30 days
|
||||||
|
updateAge: 24 * 60 * 60, // refresh cookie on each daily visit (keeps iOS PWA alive)
|
||||||
},
|
},
|
||||||
pages: {
|
pages: {
|
||||||
signIn: "/auth/login",
|
signIn: "/auth/login",
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user