diff --git a/src/App.vue b/src/App.vue index 6f08279..cefe159 100644 --- a/src/App.vue +++ b/src/App.vue @@ -11,16 +11,25 @@ + \ No newline at end of file diff --git a/src/assets/images/future.png b/src/assets/images/future.png new file mode 100644 index 0000000..c4c3af4 Binary files /dev/null and b/src/assets/images/future.png differ diff --git a/src/components/cookie/Cookie.vue b/src/components/cookie/Cookie.vue index 055597a..bb42433 100644 --- a/src/components/cookie/Cookie.vue +++ b/src/components/cookie/Cookie.vue @@ -5,16 +5,14 @@ -
-
-

{{ t("cookie policy title") }}

-
- {{ t("cookie policy") }} -
-
- - -
+
+

{{ t("cookie policy title") }}

+
+ {{ t("cookie policy") }} +
+
+ +
@@ -29,6 +27,7 @@ import { randomInt, random } from "@/utilities/random"; import { shouldShowCookie, acceptCookie, refuseCookie } from "@/utilities/cookie_handler"; import { useI18n } from "vue-i18n"; + import { addFoundEasterEgg } from "@/utilities/easteregg_handler"; const { t } = useI18n({ messages: { "en": { @@ -118,6 +117,7 @@ } function throwCookie() { + addFoundEasterEgg("cookie"); if (!engine) { return; } // Creates a cookie at the bottom of visible screen diff --git a/src/components/easteregg-banner/EastereggBanner.vue b/src/components/easteregg-banner/EastereggBanner.vue new file mode 100644 index 0000000..951f03d --- /dev/null +++ b/src/components/easteregg-banner/EastereggBanner.vue @@ -0,0 +1,70 @@ + + + \ No newline at end of file diff --git a/src/components/easteregg-banner/eggs/Cookie.vue b/src/components/easteregg-banner/eggs/Cookie.vue new file mode 100644 index 0000000..49a9cd1 --- /dev/null +++ b/src/components/easteregg-banner/eggs/Cookie.vue @@ -0,0 +1,32 @@ + + + \ No newline at end of file diff --git a/src/components/easteregg-banner/eggs/Future.vue b/src/components/easteregg-banner/eggs/Future.vue new file mode 100644 index 0000000..5ed37f4 --- /dev/null +++ b/src/components/easteregg-banner/eggs/Future.vue @@ -0,0 +1,32 @@ + + + \ No newline at end of file diff --git a/src/utilities/easteregg_handler.ts b/src/utilities/easteregg_handler.ts new file mode 100644 index 0000000..9aeff09 --- /dev/null +++ b/src/utilities/easteregg_handler.ts @@ -0,0 +1,28 @@ +const EASTER_EGGS = ["cookie", "future"]; + +export function addFoundEasterEgg(name:string):void { + if (!EASTER_EGGS.includes(name)) { return; } + + let found_eastereggs = new Set( JSON.parse(localStorage.getItem("eastereggs") ?? "[]") ); + const is_new = !found_eastereggs.has(name); + + found_eastereggs.add(name); + localStorage.setItem("eastereggs", JSON.stringify([...found_eastereggs])); + + if (is_new) { + // To trigger the banner + document.dispatchEvent(new CustomEvent("easteregg", { detail: name })); + } +} + +export function getFoundEasterEggs():string[] { + return JSON.parse(localStorage.getItem("eastereggs") ?? "[]"); +} + +export function getFoundEasterEggsCount():number { + return getFoundEasterEggs().length; +} + +export function getTotalEasterEggsCount():number { + return EASTER_EGGS.length; +} \ No newline at end of file diff --git a/src/views/resume/ExperienceTimeline.vue b/src/views/resume/ExperienceTimeline.vue index c9b9166..bb1bed7 100644 --- a/src/views/resume/ExperienceTimeline.vue +++ b/src/views/resume/ExperienceTimeline.vue @@ -1,7 +1,7 @@