From 44dd29747f644cf54beda0bd741584250b30109e Mon Sep 17 00:00:00 2001 From: Christian Engelsen Date: Thu, 1 Sep 2022 20:02:16 +0200 Subject: [PATCH 01/13] actual times instead of "varer til" --- apps/kvarteret/pages/index.js | 2 +- packages/dak-components/lib/cms/events.js | 2 +- packages/dak-components/lib/cms/index.js | 12 +++++++----- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/apps/kvarteret/pages/index.js b/apps/kvarteret/pages/index.js index ed053a8..df6d7c0 100644 --- a/apps/kvarteret/pages/index.js +++ b/apps/kvarteret/pages/index.js @@ -54,7 +54,7 @@ export default function Index({ data }) { bold event={{ time: useTranslation("time"), - room: useTranslation("room"), + room: useTranslation("room"), title: useTranslation("event"), }} /> diff --git a/packages/dak-components/lib/cms/events.js b/packages/dak-components/lib/cms/events.js index 072eeff..78288b7 100644 --- a/packages/dak-components/lib/cms/events.js +++ b/packages/dak-components/lib/cms/events.js @@ -34,7 +34,7 @@ const getRelativeDate = (date, lang) => { //Happening now if(new Date() < new Date(x.event_end)) { - if(lang == "no") return `Varer til ${getRelativeDate(new Date(x.event_end), lang)}`; + if(lang == "no") return `hallaien!!`; if(lang == "en") return `Lasts until ${getRelativeDate(new Date(x.event_end), lang)}`; } } diff --git a/packages/dak-components/lib/cms/index.js b/packages/dak-components/lib/cms/index.js index b2de0b7..a8b77ee 100644 --- a/packages/dak-components/lib/cms/index.js +++ b/packages/dak-components/lib/cms/index.js @@ -32,14 +32,16 @@ const getTimeText = (start, end, lang) => { if(new Date() < end) { if(isSameDay(new Date(), end)) { - if(lang == "no") return `Varer til ${format(end, "HH:mm")}`; - if(lang == "en") return `Lasts until ${format(end, "HH:mm")}`; + return `${format(start, "HH:mm")} - ${format(end, "HH:mm")}`; + }else{ + return getRelativeDate(end, lang); } - if(lang == "no") return `Varer til ${getRelativeDate(end, lang)}`; - if(lang == "en") return `Lasts until ${getRelativeDate(end, lang)}`; } - return `${format(start, "HH:mm")} - ${format(end, "HH:mm")}`; + if(new Date() >= end){ + if(lang == "no") return `FERDIG`; + if(lang == "no") return `FINISHED`; + } } const fetchIndexData = async (lang) => { From f3f7059f9e2208f11c91d7df5daf23a3a9ff6927 Mon Sep 17 00:00:00 2001 From: Christian Engelsen Date: Wed, 14 Sep 2022 19:07:28 +0200 Subject: [PATCH 02/13] css-changes to reformat happening-today items --- apps/kvarteret/components/TodayItem.js | 2 +- apps/kvarteret/pages/index.js | 6 +++++- packages/dak-components/lib/cms/events.js | 2 +- packages/dak-components/lib/cms/index.js | 2 ++ 4 files changed, 9 insertions(+), 3 deletions(-) diff --git a/apps/kvarteret/components/TodayItem.js b/apps/kvarteret/components/TodayItem.js index bae3cd3..bc46117 100644 --- a/apps/kvarteret/components/TodayItem.js +++ b/apps/kvarteret/components/TodayItem.js @@ -9,7 +9,7 @@ const TodayItem = ({ event, bold }) => { {` .time, .room, .title { font-weight: ${bold ? "700" : "300"}; - + margin: 5px; } @media (max-width: 768px) { diff --git a/apps/kvarteret/pages/index.js b/apps/kvarteret/pages/index.js index df6d7c0..6a58cf3 100644 --- a/apps/kvarteret/pages/index.js +++ b/apps/kvarteret/pages/index.js @@ -102,7 +102,7 @@ export default function Index({ data }) { .happening-today-content { gap: 0; display: grid; - grid-template-columns: 1fr; + /* grid-template-columns: 1fr; */ grid-template-rows: repeat(auto-fit, 1fr); } } @@ -148,6 +148,10 @@ export default function Index({ data }) { margin: auto; } + .TodayItem{ + bakground-color: green; + } + .happening-today { width: calc(65% - 20px / 2); // 20px / 2 bcs of gap min-height: 50px; diff --git a/packages/dak-components/lib/cms/events.js b/packages/dak-components/lib/cms/events.js index 78288b7..072eeff 100644 --- a/packages/dak-components/lib/cms/events.js +++ b/packages/dak-components/lib/cms/events.js @@ -34,7 +34,7 @@ const getRelativeDate = (date, lang) => { //Happening now if(new Date() < new Date(x.event_end)) { - if(lang == "no") return `hallaien!!`; + if(lang == "no") return `Varer til ${getRelativeDate(new Date(x.event_end), lang)}`; if(lang == "en") return `Lasts until ${getRelativeDate(new Date(x.event_end), lang)}`; } } diff --git a/packages/dak-components/lib/cms/index.js b/packages/dak-components/lib/cms/index.js index a8b77ee..29be8f6 100644 --- a/packages/dak-components/lib/cms/index.js +++ b/packages/dak-components/lib/cms/index.js @@ -22,6 +22,7 @@ const getRelativeDate = (date, lang) => { } const getTimeText = (start, end, lang) => { + // Not yet happened if(start >= new Date()) { if(lang == "no") return `Starter ${format(start, "HH:mm")}`; @@ -38,6 +39,7 @@ const getTimeText = (start, end, lang) => { } } + //Finished event if(new Date() >= end){ if(lang == "no") return `FERDIG`; if(lang == "no") return `FINISHED`; From be5fcd218147929509950739df5cbaf5d2632895 Mon Sep 17 00:00:00 2001 From: "Christian K. Engelsen" <78857869+Cengelsen@users.noreply.github.com> Date: Wed, 14 Sep 2022 19:22:27 +0200 Subject: [PATCH 03/13] Update packages/dak-components/lib/cms/index.js MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Mathias Haugsbø --- packages/dak-components/lib/cms/index.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/dak-components/lib/cms/index.js b/packages/dak-components/lib/cms/index.js index 29be8f6..c83e4eb 100644 --- a/packages/dak-components/lib/cms/index.js +++ b/packages/dak-components/lib/cms/index.js @@ -34,8 +34,9 @@ const getTimeText = (start, end, lang) => { if(isSameDay(new Date(), end)) { return `${format(start, "HH:mm")} - ${format(end, "HH:mm")}`; - }else{ + } else { return getRelativeDate(end, lang); + } } From c3417d15209754fdbe252d273ae8ca065be404b8 Mon Sep 17 00:00:00 2001 From: "Christian K. Engelsen" <78857869+Cengelsen@users.noreply.github.com> Date: Wed, 14 Sep 2022 19:22:43 +0200 Subject: [PATCH 04/13] Update packages/dak-components/lib/cms/index.js MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Mathias Haugsbø --- packages/dak-components/lib/cms/index.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/dak-components/lib/cms/index.js b/packages/dak-components/lib/cms/index.js index c83e4eb..73c0e6e 100644 --- a/packages/dak-components/lib/cms/index.js +++ b/packages/dak-components/lib/cms/index.js @@ -41,10 +41,11 @@ const getTimeText = (start, end, lang) => { } //Finished event - if(new Date() >= end){ + if(new Date() >= end) { if(lang == "no") return `FERDIG`; if(lang == "no") return `FINISHED`; } + } const fetchIndexData = async (lang) => { From 375b1c31b67815830f486e29a4957456ec10e1a9 Mon Sep 17 00:00:00 2001 From: "Christian K. Engelsen" <78857869+Cengelsen@users.noreply.github.com> Date: Wed, 14 Sep 2022 19:23:37 +0200 Subject: [PATCH 05/13] Apply suggestions from code review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Mathias Haugsbø --- apps/kvarteret/pages/index.js | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/apps/kvarteret/pages/index.js b/apps/kvarteret/pages/index.js index 6a58cf3..53268fc 100644 --- a/apps/kvarteret/pages/index.js +++ b/apps/kvarteret/pages/index.js @@ -54,7 +54,7 @@ export default function Index({ data }) { bold event={{ time: useTranslation("time"), - room: useTranslation("room"), + room: useTranslation("room"), title: useTranslation("event"), }} /> @@ -148,10 +148,6 @@ export default function Index({ data }) { margin: auto; } - .TodayItem{ - bakground-color: green; - } - .happening-today { width: calc(65% - 20px / 2); // 20px / 2 bcs of gap min-height: 50px; From 36e3d0b430e0fe9707051ec69a1b7444bd855e33 Mon Sep 17 00:00:00 2001 From: "Christian K. Engelsen" <78857869+Cengelsen@users.noreply.github.com> Date: Wed, 14 Sep 2022 19:28:57 +0200 Subject: [PATCH 06/13] Update apps/kvarteret/pages/index.js --- apps/kvarteret/pages/index.js | 1 - 1 file changed, 1 deletion(-) diff --git a/apps/kvarteret/pages/index.js b/apps/kvarteret/pages/index.js index 53268fc..d095dac 100644 --- a/apps/kvarteret/pages/index.js +++ b/apps/kvarteret/pages/index.js @@ -102,7 +102,6 @@ export default function Index({ data }) { .happening-today-content { gap: 0; display: grid; - /* grid-template-columns: 1fr; */ grid-template-rows: repeat(auto-fit, 1fr); } } From c683fc21b40adfe4fc6012e3bfd6501cee8f66a4 Mon Sep 17 00:00:00 2001 From: Christian Engelsen Date: Wed, 28 Sep 2022 18:21:15 +0200 Subject: [PATCH 07/13] changed file to .tsx --- apps/kvarteret/components/{TodayItem.js => TodayItem.tsx} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename apps/kvarteret/components/{TodayItem.js => TodayItem.tsx} (100%) diff --git a/apps/kvarteret/components/TodayItem.js b/apps/kvarteret/components/TodayItem.tsx similarity index 100% rename from apps/kvarteret/components/TodayItem.js rename to apps/kvarteret/components/TodayItem.tsx From f29f13c182c055f78f04b6963b009c76e04fef50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mathias=20Haugsb=C3=B8?= Date: Wed, 28 Sep 2022 18:23:28 +0200 Subject: [PATCH 08/13] Move HappeningToday to it's own component --- apps/kvarteret/components/HappeningToday.tsx | 36 ++++++++++++++++++++ apps/kvarteret/components/TodayItem.js | 10 +++--- apps/kvarteret/pages/index.js | 35 +++++-------------- 3 files changed, 51 insertions(+), 30 deletions(-) create mode 100644 apps/kvarteret/components/HappeningToday.tsx diff --git a/apps/kvarteret/components/HappeningToday.tsx b/apps/kvarteret/components/HappeningToday.tsx new file mode 100644 index 0000000..fa77d64 --- /dev/null +++ b/apps/kvarteret/components/HappeningToday.tsx @@ -0,0 +1,36 @@ +import { TodayItem } from "../components/TodayItem"; +import { Title } from "dak-components"; +import TranslatedField, { + useTranslation, +} from "dak-components/lib/components/TranslatedField"; +import { Event } from "dak-components/lib/cms/queries/events"; + +const HappeningToday = ({ events }: { events: Event[] }) => { + return ( +
+ + <TranslatedField tKey="index-happening-today" /> + +
+ + {events.map((x, i) => ( + + ))} +
+ {events.length <= 0 && ( +
+ +
+ )} +
+ ); +}; + +export default HappeningToday; diff --git a/apps/kvarteret/components/TodayItem.js b/apps/kvarteret/components/TodayItem.js index bc46117..d6dd55d 100644 --- a/apps/kvarteret/components/TodayItem.js +++ b/apps/kvarteret/components/TodayItem.js @@ -1,4 +1,4 @@ -const TodayItem = ({ event, bold }) => { +const TodayItem = ({ event, bold = false }) => { return ( <>
{event.time}
@@ -7,9 +7,11 @@ const TodayItem = ({ event, bold }) => { + ); }; diff --git a/apps/kvarteret/components/TodayItem.tsx b/apps/kvarteret/components/TodayItem.tsx index d6dd55d..6bf4837 100644 --- a/apps/kvarteret/components/TodayItem.tsx +++ b/apps/kvarteret/components/TodayItem.tsx @@ -1,4 +1,7 @@ -const TodayItem = ({ event, bold = false }) => { +import { Event } from "dak-components/lib/cms/queries/events"; +import { CrescatEvent } from "dak-components/lib/crescat"; + +const TodayItem = ({ event, bold = false }: { event: { time: String; room: String; title: String; }; bold?: boolean }) => { return ( <>
{event.time}
@@ -18,6 +21,7 @@ const TodayItem = ({ event, bold = false }) => { .title { margin-bottom: 10px; } + } `} diff --git a/packages/dak-components/lib/crescat.js b/packages/dak-components/lib/crescat.js deleted file mode 100644 index 8646c9e..0000000 --- a/packages/dak-components/lib/crescat.js +++ /dev/null @@ -1,29 +0,0 @@ -import axios from 'axios' - -import cache from 'memory-cache'; - -const cachedGet = async (url, headers) => { - const cachedResponse = cache.get(url); - if(cachedResponse) { - return cachedResponse; - } - - const cacheTime = 1000 * 60 * 30; //Cached for 1 minutes - const response = await axios.get(url, { - headers - }); - const data = response.data; - cache.put(url, data, cacheTime); - return data; -} - -const getEvents = async () => { - // TODO: Place as env variable - const crescatData = await cachedGet("https://app.crescat.io/external/v1/calendar", { - Authorization: `Bearer ${process.env.CRESCAT_TOKEN}` - }); - - return crescatData.filter(x=>x.fields.some(x=>x.id === 70879)); -} - -export {getEvents}; \ No newline at end of file diff --git a/packages/dak-components/lib/crescat.ts b/packages/dak-components/lib/crescat.ts new file mode 100644 index 0000000..a76ef3b --- /dev/null +++ b/packages/dak-components/lib/crescat.ts @@ -0,0 +1,57 @@ +import axios, { AxiosRequestHeaders } from 'axios' + +import cache from 'memory-cache'; + +// Fetches the data from a given URL +const cachedGet = async (url: string, headers: AxiosRequestHeaders) => { + const cachedResponse = cache.get(url); + if (cachedResponse) { + return cachedResponse; + } + + const cacheTime = 1000 * 60 * 30; //Cached for 1 minutes + const response = await axios.get(url, { + headers + }); + + // Establishes the data from the URL-response + const data = response.data; + cache.put(url, data, cacheTime); + return data; +} + +const getEvents = async () => { + const crescatData = await cachedGet("https://app.crescat.io/external/v1/calendar", { + Authorization: `Bearer ${process.env.CRESCAT_TOKEN}` + }); + + return crescatData.filter(x => x.fields.some(x => x.id === 70879)); +} + +export { getEvents }; + +// Type definition for the crescatData +export interface CrescatEvent { + id: number; + name: string; + start: Date; + end: Date; + event_type_id: number; + rooms: Room[]; + show_times: any[]; + fields: Field[]; +} + +export interface Field { + value: null | string; + show_time_id: null; + id: number; +} + +export interface Room { + name: string; + id: number; + title: null | string; + start: Date; + end: Date; +} From fea0f91a10582d9176fbfa6ae892dd71907ab31c Mon Sep 17 00:00:00 2001 From: "Christian K. Engelsen" <78857869+Cengelsen@users.noreply.github.com> Date: Thu, 13 Oct 2022 13:43:30 +0200 Subject: [PATCH 10/13] Update apps/kvarteret/components/TodayItem.tsx MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Mathias Haugsbø --- apps/kvarteret/components/TodayItem.tsx | 3 --- 1 file changed, 3 deletions(-) diff --git a/apps/kvarteret/components/TodayItem.tsx b/apps/kvarteret/components/TodayItem.tsx index 6bf4837..068ecdc 100644 --- a/apps/kvarteret/components/TodayItem.tsx +++ b/apps/kvarteret/components/TodayItem.tsx @@ -1,6 +1,3 @@ -import { Event } from "dak-components/lib/cms/queries/events"; -import { CrescatEvent } from "dak-components/lib/crescat"; - const TodayItem = ({ event, bold = false }: { event: { time: String; room: String; title: String; }; bold?: boolean }) => { return ( <> From b8ae18cad5e68b930ab5a36ea3e144a7725159a9 Mon Sep 17 00:00:00 2001 From: Christian Engelsen Date: Thu, 13 Oct 2022 20:47:53 +0200 Subject: [PATCH 11/13] Filters showtimes to be returned --- packages/dak-components/lib/crescat.ts | 44 ++++++++++++++++++++++++-- 1 file changed, 42 insertions(+), 2 deletions(-) diff --git a/packages/dak-components/lib/crescat.ts b/packages/dak-components/lib/crescat.ts index a76ef3b..2da5cba 100644 --- a/packages/dak-components/lib/crescat.ts +++ b/packages/dak-components/lib/crescat.ts @@ -20,14 +20,42 @@ const cachedGet = async (url: string, headers: AxiosRequestHeaders) => { return data; } + const getEvents = async () => { + + // Fetches json payload from the Crescat booking site const crescatData = await cachedGet("https://app.crescat.io/external/v1/calendar", { Authorization: `Bearer ${process.env.CRESCAT_TOKEN}` }); - return crescatData.filter(x => x.fields.some(x => x.id === 70879)); + var rawShowTimes = Array(); + + // Cycles through all events in crescatData and retrieves showtimes + for (var ievent = 0; ievent < crescatData.length; ievent++) { + + rawShowTimes.push(crescatData[ievent].show_times) + }; + + // Array to be returned + var jsonShowTimes = Array(); + + // Retrieves the json-elements from raw showtimes array + for (var stIndex = 0; stIndex < rawShowTimes.length; stIndex++) { + + for (var stIndex2 = 0; stIndex2 < rawShowTimes[stIndex].length; stIndex2++) { + if (rawShowTimes[stIndex] != []) { + jsonShowTimes.push(rawShowTimes[stIndex][stIndex2]); + }; + }; + }; + + return jsonShowTimes; + + //return crescatData.filter(x => x.fields.some(x => x.id === 70879)); } + + export { getEvents }; // Type definition for the crescatData @@ -38,7 +66,7 @@ export interface CrescatEvent { end: Date; event_type_id: number; rooms: Room[]; - show_times: any[]; + show_times: Show_Times[]; fields: Field[]; } @@ -55,3 +83,15 @@ export interface Room { start: Date; end: Date; } + + +export interface Show_Times { + id: number; + title: string; + description: string | null; + confirmed: boolean; + start: string; + end: string; + room_id: number; + +} \ No newline at end of file From ea7b6df9d9f49ed230b996f59df0b4a90fbca764 Mon Sep 17 00:00:00 2001 From: "Christian K. Engelsen" <78857869+Cengelsen@users.noreply.github.com> Date: Wed, 19 Oct 2022 17:52:03 +0200 Subject: [PATCH 12/13] Update packages/dak-components/lib/crescat.ts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Mathias Haugsbø --- packages/dak-components/lib/crescat.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/dak-components/lib/crescat.ts b/packages/dak-components/lib/crescat.ts index 2da5cba..e11d879 100644 --- a/packages/dak-components/lib/crescat.ts +++ b/packages/dak-components/lib/crescat.ts @@ -93,5 +93,4 @@ export interface Show_Times { start: string; end: string; room_id: number; - } \ No newline at end of file From bc684ad303bed4c6c9de529de6e91d3f47cc3579 Mon Sep 17 00:00:00 2001 From: "Christian K. Engelsen" <78857869+Cengelsen@users.noreply.github.com> Date: Wed, 19 Oct 2022 17:58:11 +0200 Subject: [PATCH 13/13] Apply suggestions from code review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is a better implementation of what i wanted. Good job :) Co-authored-by: Mathias Haugsbø --- packages/dak-components/lib/crescat.ts | 38 +++++++------------------- 1 file changed, 10 insertions(+), 28 deletions(-) diff --git a/packages/dak-components/lib/crescat.ts b/packages/dak-components/lib/crescat.ts index e11d879..c4b41bf 100644 --- a/packages/dak-components/lib/crescat.ts +++ b/packages/dak-components/lib/crescat.ts @@ -22,35 +22,17 @@ const cachedGet = async (url: string, headers: AxiosRequestHeaders) => { const getEvents = async () => { + // Fetches json payload from the Crescat booking site + const crescatData = (await cachedGet( + "https://app.crescat.io/external/v1/calendar", + { + Authorization: `Bearer ${process.env.CRESCAT_TOKEN}`, + } + )) as CrescatEvent[]; - // Fetches json payload from the Crescat booking site - const crescatData = await cachedGet("https://app.crescat.io/external/v1/calendar", { - Authorization: `Bearer ${process.env.CRESCAT_TOKEN}` - }); - - var rawShowTimes = Array(); - - // Cycles through all events in crescatData and retrieves showtimes - for (var ievent = 0; ievent < crescatData.length; ievent++) { - - rawShowTimes.push(crescatData[ievent].show_times) - }; - - // Array to be returned - var jsonShowTimes = Array(); - - // Retrieves the json-elements from raw showtimes array - for (var stIndex = 0; stIndex < rawShowTimes.length; stIndex++) { - - for (var stIndex2 = 0; stIndex2 < rawShowTimes[stIndex].length; stIndex2++) { - if (rawShowTimes[stIndex] != []) { - jsonShowTimes.push(rawShowTimes[stIndex][stIndex2]); - }; - }; - }; - - return jsonShowTimes; - + const showTimes = crescatData.flatMap(event => event.show_times); + return showTimes; + //return crescatData.filter(x => x.fields.some(x => x.id === 70879)); }