1.5.7
Profile memory Comment cleanup
This commit is contained in:
+21
-21
@@ -1,8 +1,8 @@
|
||||
// ════════════════════════════════════════════════════════════════════════
|
||||
// config.js — Pure-data configuration constants for the UTCIForecast app.
|
||||
// ------------------------------------------------------------------------
|
||||
// config.js - Pure-data configuration constants for the UTCIForecast app.
|
||||
//
|
||||
// Moved out of app.js so the main component is easier to read and edit.
|
||||
// Nothing here has state or side effects — just constants and lookup
|
||||
// Nothing here has state or side effects - just constants and lookup
|
||||
// tables imported by app.js (and anywhere else that needs them).
|
||||
//
|
||||
// Where to find things:
|
||||
@@ -15,13 +15,13 @@
|
||||
// activityVariantKeys ........ which variants appear in the Activities menu
|
||||
// placeVariantKeys ........... which variants appear in the Places menu
|
||||
// COL_DESCRIPTIONS ........... tooltip text for each table column header
|
||||
// ════════════════════════════════════════════════════════════════════════
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
// How many days the free tier shows. Days beyond this get a 🔒.
|
||||
// How many days the free tier shows. Days beyond this get a -.
|
||||
// Bump this number if you want to give free users more access.
|
||||
export const FREE_DAYS = 3;
|
||||
|
||||
// Filter profile presets — each preset defines which columns are visible
|
||||
// Filter profile presets - each preset defines which columns are visible
|
||||
// when that profile is selected.
|
||||
export const FILTER_PROFILES = {
|
||||
basic: {
|
||||
@@ -61,37 +61,37 @@ export const FILTER_PROFILES = {
|
||||
icon: '⚙️',
|
||||
proOnly: true,
|
||||
cols: { hour: true, air: true, rh: false, dew: false, wind: true, dir: false, cloud: false, sun: false, direct: false, diffuse: false, tmrt: false, delta: false, utci: false, uvA: false, uvB: false, burn: false, utciP: true, precip: true, soilT: false, soilT6: false, soilM: false, concreteT: false, vehicleT: false, indoorT: false, managedT: false, vis: false, aqi: false, pollen: false },
|
||||
// ── FUTURE FEATURE v2: Saved Custom Profiles (Pro) ───────────────────────
|
||||
// -- FUTURE FEATURE v2: Saved Custom Profiles (Pro) -----------------------
|
||||
// Expand 'Custom' into a fully user-owned profile system. Pro users can:
|
||||
//
|
||||
// • CREATE named profiles — give them a name and icon, choose any columns
|
||||
// • SAVE multiple profiles — stored in localStorage (or user account if we
|
||||
// - CREATE named profiles - give them a name and icon, choose any columns
|
||||
// - SAVE multiple profiles - stored in localStorage (or user account if we
|
||||
// add auth), each appearing as an extra pill in the profile button bar
|
||||
// • REORDER columns — drag-and-drop within the custom profile editor.
|
||||
// - REORDER columns - drag-and-drop within the custom profile editor.
|
||||
// Column order is just an array of keys; shuffle the array, re-render.
|
||||
// The existing col visibility flags stay, reordering is a separate
|
||||
// `colOrder: ['hour', 'air', 'wind', ...]` array on the profile object.
|
||||
// • DELETE / RENAME profiles in a small management modal
|
||||
// 'colOrder: ['hour', 'air', 'wind', ...]' array on the profile object.
|
||||
// - DELETE / RENAME profiles in a small management modal
|
||||
//
|
||||
// The 'Custom' button becomes "+ New Profile" when in profile-creation mode.
|
||||
// Existing preset profiles (Basic, Home, Vehicle…) remain read-only.
|
||||
// The 'Custom' button becomes "- New Profile" when in profile-creation mode.
|
||||
// Existing preset profiles (Basic, Home, Vehicle-) remain read-only.
|
||||
//
|
||||
// Data shape per saved profile:
|
||||
// {
|
||||
// id: 'profile_abc123', // generated uuid
|
||||
// label: 'My Beach Days',
|
||||
// icon: '🏖️', // user picks from a small emoji set
|
||||
// icon: '--', // user picks from a small emoji set
|
||||
// cols: { ...standard col flags },
|
||||
// colOrder: ['hour', 'air', 'burn', 'wind', ...], // user's preferred order
|
||||
// createdAt: ISO string,
|
||||
// }
|
||||
//
|
||||
// Storage: JSON.stringify array in localStorage under 'sunscope_custom_profiles'.
|
||||
// ─────────────────────────────────────────────────────────────────────────────
|
||||
// -----------------------------------------------------------------------------
|
||||
},
|
||||
};
|
||||
|
||||
// Places sub-variants — each has its own column set.
|
||||
// Places sub-variants - each has its own column set.
|
||||
// Selecting a variant applies its cols to visibleCols.
|
||||
export const OUTDOORS_VARIANTS = {
|
||||
urban: { name: 'Urban', cols: { hour: true, air: true, rh: false, dew: false, wind: true, dir: true, cloud: true, sun: false, direct: false, diffuse: false, tmrt: false, delta: false, utci: false, uvA: true, uvB: false, burn: true, utciP: true, precip: true, soilT: false, soilT6: false, soilM: false, concreteT: true, vehicleT: false, indoorT: false, managedT: false, vis: true, aqi: true, pollen: false } },
|
||||
@@ -101,16 +101,16 @@ export const OUTDOORS_VARIANTS = {
|
||||
wintersports: { name: 'Winter Sports', proOnly: true, cols: { hour: true, air: true, rh: false, dew: false, wind: true, dir: true, cloud: true, sun: true, direct: false, diffuse: false, tmrt: false, delta: false, utci: false, uvA: true, uvB: true, burn: true, utciP: true, precip: true, soilT: false, soilT6: false, soilM: false, concreteT: false, vehicleT: false, indoorT: false, managedT: false, vis: true, aqi: false, pollen: false } },
|
||||
naturist: { name: 'Naturist', proOnly: true, cols: { hour: true, air: true, rh: false, dew: true, wind: true, dir: false, cloud: true, sun: true, direct: false, diffuse: false, tmrt: false, delta: false, utci: true, uvA: true, uvB: true, burn: true, utciP: true, precip: true, soilT: false, soilT6: false, soilM: false, concreteT: false, vehicleT: false, indoorT: false, managedT: false, vis: false, aqi: true, pollen: true } },
|
||||
sailing: { name: 'Sailing', proOnly: true, cols: { hour: true, air: true, rh: false, dew: true, wind: true, dir: true, cloud: true, sun: true, direct: false, diffuse: false, tmrt: false, delta: false, utci: false, uvA: true, uvB: false, burn: true, utciP: true, precip: true, soilT: false, soilT6: false, soilM: false, concreteT: false, vehicleT: false, indoorT: false, managedT: false, vis: true, aqi: false, pollen: false } },
|
||||
// Places — free
|
||||
// Places - free
|
||||
park: { name: 'Park / Picnic', cols: { hour: true, air: true, rh: false, dew: false, wind: true, dir: false, cloud: true, sun: false, direct: false, diffuse: false, tmrt: false, delta: false, utci: false, uvA: false, uvB: false, burn: true, utciP: true, precip: true, soilT: false, soilT6: false, soilM: false, concreteT: false, vehicleT: false, indoorT: false, managedT: false, vis: false, aqi: false, pollen: true } },
|
||||
airport: { name: 'Airport / Travel', cols: { hour: true, air: true, rh: false, dew: false, wind: true, dir: true, cloud: true, sun: false, direct: false, diffuse: false, tmrt: false, delta: false, utci: false, uvA: false, uvB: false, burn: false, utciP: false, precip: true, soilT: false, soilT6: false, soilM: false, concreteT: false, vehicleT: false, indoorT: false, managedT: false, vis: true, aqi: false, pollen: false } },
|
||||
// Places — Pro
|
||||
// Places - Pro
|
||||
construction: { name: 'Construction', proOnly: true, cols: { hour: true, air: true, rh: false, dew: false, wind: true, dir: true, cloud: true, sun: false, direct: false, diffuse: false, tmrt: false, delta: false, utci: true, uvA: false, uvB: false, burn: false, utciP: true, precip: true, soilT: false, soilT6: false, soilM: false, concreteT: false, vehicleT: false, indoorT: false, managedT: false, vis: true, aqi: true, pollen: false } },
|
||||
// Activities — free
|
||||
// Activities - free
|
||||
cycling: { name: 'Cycling', cols: { hour: true, air: true, rh: false, dew: false, wind: true, dir: true, cloud: true, sun: false, direct: false, diffuse: false, tmrt: false, delta: false, utci: false, uvA: false, uvB: false, burn: true, utciP: true, precip: true, soilT: false, soilT6: false, soilM: false, concreteT: false, vehicleT: false, indoorT: false, managedT: false, vis: true, aqi: false, pollen: false } },
|
||||
running: { name: 'Running', cols: { hour: true, air: true, rh: true, dew: false, wind: true, dir: false, cloud: true, sun: false, direct: false, diffuse: false, tmrt: false, delta: false, utci: true, uvA: false, uvB: false, burn: true, utciP: true, precip: true, soilT: false, soilT6: false, soilM: false, concreteT: false, vehicleT: false, indoorT: false, managedT: false, vis: false, aqi: false, pollen: true } },
|
||||
dogwalk: { name: 'Dog Walking', cols: { hour: true, air: true, rh: false, dew: false, wind: true, dir: false, cloud: true, sun: false, direct: false, diffuse: false, tmrt: false, delta: false, utci: false, uvA: false, uvB: false, burn: false, utciP: true, precip: true, soilT: false, soilT6: false, soilM: false, concreteT: false, vehicleT: false, indoorT: false, managedT: false, vis: false, aqi: false, pollen: true } },
|
||||
// Activities — Pro
|
||||
// Activities - Pro
|
||||
hiking: { name: 'Hiking', proOnly: true, cols: { hour: true, air: true, rh: false, dew: false, wind: true, dir: true, cloud: true, sun: true, direct: false, diffuse: false, tmrt: false, delta: false, utci: true, uvA: true, uvB: true, burn: true, utciP: true, precip: true, soilT: false, soilT6: false, soilM: false, concreteT: false, vehicleT: false, indoorT: false, managedT: false, vis: true, aqi: false, pollen: false } },
|
||||
photography: { name: 'Photography', proOnly: true, cols: { hour: true, air: true, rh: false, dew: false, wind: false, dir: false, cloud: true, sun: true, direct: true, diffuse: true, tmrt: false, delta: false, utci: false, uvA: false, uvB: false, burn: false, utciP: false, precip: true, soilT: false, soilT6: false, soilM: false, concreteT: false, vehicleT: false, indoorT: false, managedT: false, vis: true, aqi: false, pollen: false } },
|
||||
fishing: { name: 'Fishing', proOnly: true, cols: { hour: true, air: true, rh: false, dew: true, wind: true, dir: true, cloud: true, sun: false, direct: false, diffuse: false, tmrt: false, delta: false, utci: false, uvA: false, uvB: false, burn: false, utciP: true, precip: true, soilT: false, soilT6: false, soilM: false, concreteT: false, vehicleT: false, indoorT: false, managedT: false, vis: true, aqi: false, pollen: false } },
|
||||
|
||||
Reference in New Issue
Block a user