fix: all-day label top-aligned, weather 502 silent, toggle consistency
- All-day label column uses flex-start so label is visible in small area - Weather API returns empty data (200) instead of 502 when forecast range is out of bounds, suppressing console noise on future/past navigation - QuickSettings toggles for project icons and checkboxes now use effective (per-view-aware) value, consistent with other toggles v1.81.13
This commit is contained in:
parent
091004e87e
commit
86c462c920
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "my-weekly-todo-list",
|
||||
"version": "1.81.12",
|
||||
"version": "1.81.13",
|
||||
"description": "A web-based weekly task management application that organizes to-dos and calendar events in a single, intuitive weekly view",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
|
||||
@ -40,7 +40,8 @@ export async function GET(request: NextRequest) {
|
||||
const res = await fetch(url, { next: { revalidate: 900 } });
|
||||
|
||||
if (!res.ok) {
|
||||
return NextResponse.json({ error: 'Weather API failed' }, { status: 502 });
|
||||
// Silently return empty data (e.g. date out of forecast range)
|
||||
return NextResponse.json({ hourly: {} });
|
||||
}
|
||||
|
||||
const raw = await res.json();
|
||||
|
||||
@ -5208,10 +5208,10 @@ export default function WeeklyView() {
|
||||
display: "flex",
|
||||
flexDirection: "column",
|
||||
alignItems: "center",
|
||||
justifyContent: "center",
|
||||
justifyContent: "flex-start",
|
||||
cursor: "pointer",
|
||||
borderRight: "1px solid var(--weekly-border)",
|
||||
padding: "2px 4px",
|
||||
padding: "4px 4px 2px",
|
||||
gap: "0px",
|
||||
marginLeft: "-1px",
|
||||
position: "relative",
|
||||
@ -5494,13 +5494,13 @@ export default function WeeklyView() {
|
||||
</div>
|
||||
<div style={{ display: "flex", justifyContent: "space-between", alignItems: "center" }}>
|
||||
<span style={{ fontSize: "0.75rem", fontWeight: 600, color: darkMode ? "#9ca3af" : "#6b7280" }}>{profile.language === "de" ? "Checkboxen" : "Checkboxes"}</span>
|
||||
<button onClick={() => { const v = !profile.showTaskCheckboxes; setProfile({ ...profile, showTaskCheckboxes: v }); saveSetting("showTaskCheckboxes", v); }} style={{ background: "none", border: "none", cursor: "pointer", padding: "2px", color: darkMode ? "#9ca3af" : "#6b7280" }}>
|
||||
<button onClick={() => { const v = !effectiveShowTaskCheckboxes; saveSetting("showTaskCheckboxes", v); }} style={{ background: "none", border: "none", cursor: "pointer", padding: "2px", color: darkMode ? "#9ca3af" : "#6b7280" }}>
|
||||
{effectiveShowTaskCheckboxes ? <Eye size={16} /> : <EyeOff size={16} />}
|
||||
</button>
|
||||
</div>
|
||||
<div style={{ display: "flex", justifyContent: "space-between", alignItems: "center" }}>
|
||||
<span style={{ fontSize: "0.75rem", fontWeight: 600, color: darkMode ? "#9ca3af" : "#6b7280" }}>{profile.language === "de" ? "Projekt-Icons" : "Project Icons"}</span>
|
||||
<button onClick={() => { const v = !profile.showProjectIcons; setProfile({ ...profile, showProjectIcons: v }); saveSetting("showProjectIcons", v); }} style={{ background: "none", border: "none", cursor: "pointer", padding: "2px", color: darkMode ? "#9ca3af" : "#6b7280" }}>
|
||||
<button onClick={() => { const v = !effectiveShowProjectIcons; saveSetting("showProjectIcons", v); }} style={{ background: "none", border: "none", cursor: "pointer", padding: "2px", color: darkMode ? "#9ca3af" : "#6b7280" }}>
|
||||
{effectiveShowProjectIcons ? <Eye size={16} /> : <EyeOff size={16} />}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user