aboutsummaryrefslogtreecommitdiff
path: root/src/frontend/app/data/SpecialPlacesProvider.ts
blob: 2e3be6882aab888d2fadbb25cc53cead0db2b19f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
import { REGION_DATA } from "~/config/RegionConfig";

export interface SpecialPlace {
  name: string;
  type: "stop" | "address";
  stopId?: string;
  address?: string;
  latitude?: number;
  longitude?: number;
}

const STORAGE_KEY_HOME = `specialPlace_home_${REGION_DATA.id}`;
const STORAGE_KEY_WORK = `specialPlace_work_${REGION_DATA.id}`;

function getHome(): SpecialPlace | null {
  try {
    const raw = localStorage.getItem(STORAGE_KEY_HOME);
    if (raw) {
      return JSON.parse(raw) as SpecialPlace;
    }
  } catch (error) {
    console.error("Error reading home location:", error);
  }
  return null;
}

function setHome(place: SpecialPlace): void {
  try {
    localStorage.setItem(STORAGE_KEY_HOME, JSON.stringify(place));
  } catch (error) {
    console.error("Error saving home location:", error);
  }
}

function removeHome(): void {
  try {
    localStorage.removeItem(STORAGE_KEY_HOME);
  } catch (error) {
    console.error("Error removing home location:", error);
  }
}

function getWork(): SpecialPlace | null {
  try {
    const raw = localStorage.getItem(STORAGE_KEY_WORK);
    if (raw) {
      return JSON.parse(raw) as SpecialPlace;
    }
  } catch (error) {
    console.error("Error reading work location:", error);
  }
  return null;
}

function setWork(place: SpecialPlace): void {
  try {
    localStorage.setItem(STORAGE_KEY_WORK, JSON.stringify(place));
  } catch (error) {
    console.error("Error saving work location:", error);
  }
}

function removeWork(): void {
  try {
    localStorage.removeItem(STORAGE_KEY_WORK);
  } catch (error) {
    console.error("Error removing work location:", error);
  }
}

export default {
  getHome,
  setHome,
  removeHome,
  getWork,
  setWork,
  removeWork,
};