Skip to content

Commit

Permalink
update: Fix current base to match with latest update to main.
Browse files Browse the repository at this point in the history
  • Loading branch information
kinxiel committed Apr 7, 2023
1 parent 59d32d4 commit 0aacb9c
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 139 deletions.
22 changes: 3 additions & 19 deletions pages/events.vue
Original file line number Diff line number Diff line change
Expand Up @@ -4,26 +4,17 @@
<MeetupEventItem title="OK" :date="dayjs(1681019000000)" url="some url" :group="Object.keys({ owddm })[0]" />
<MeetupEventItem title="OK" :date="dayjs(1683019000000)" url="some url" :group="Object.keys({ owddm })[0]" />
<MeetupEventItem title="OK" :date="dayjs(1687019000000)" url="some url" :group="Object.keys({ owddm })[0]" />
<MeetupEventItem title="OK" :date="dayjs(1683019000000)" url="some url" :group="Object.keys({ kwddm })[0]" />
<MeetupEventItem title="OK" :date="dayjs(1687019000000)" url="some url" :group="Object.keys({ kwddm })[0]" />
<MeetupEventItem title="OK" :date="dayjs(1680019000000)" url="some url" :group="Object.keys({ kwddm })[0]" />
</div>
</template>

<script setup lang="ts">
import MeetupEventItem from "~~/components/SiteMainEvents/MeetupEventItem.vue";
import { MeetupEventRaw, MeetupEvent, useEvents, getUniqueItems, getYearFromMeetupEvents, getTimeDiffInDays } from "~~/utils/utils";
import { useEvents } from "~~/utils/events";
// * Must import esm version or will cause an error in Vite
import dayjs from "dayjs/esm";
const owddm = await useEvents("15632202");
// const kwddm = await useEvents("36450361");
console.log({ owddm });
// console.log({ kwddm });
const { data } = await useEvents();
enum Group {
owddm = "owddm",
kwddm = "kwddm",
}
console.log(data.value);
// TODO:
/*
Expand All @@ -35,13 +26,6 @@ enum Group {
- Upcoming events will basically be events, that appear later the client's current date.
- Clicking on an event should jump to the event page.
*/
// let uniqueYears: number[] = getUniqueItems(getYearFromMeetupEvents(owddm)).reverse();
// let date1 = dayjs(1680318000000);
// let date2 = dayjs();
// console.log(getTimeDiffInDays(date1, date2));
</script>

<style scoped>
Expand Down
122 changes: 2 additions & 120 deletions utils/utils.ts
Original file line number Diff line number Diff line change
@@ -1,134 +1,16 @@
import dayjs, { Dayjs } from "dayjs/esm";

const base = "https://owddm.github.io/public";

export function getSitePath(path: string): string {
return `${base}${path}`;
}

// * Format Date

export function formatDate(timestamp: Date) {
let date = new Date(timestamp);
return date.toDateString();
}

// * Events

// const eventsCache = new WeakMap<MeetupEventDataRaw, Group[]>();

interface MeetupEventDataRaw {
groups: { [groupName: string]: MeetupGroup };
transforms: Transform[];
venues: Venue[];
}

interface Venue {
address?: string;
city?: string;
country?: string;
crossStreet?: boolean | null;
id: string;
lat: number;
lng: number;
name?: string;
postalCode?: string;
state?: string;
}

interface MeetupGroup {
city?: string;
country?: string;
description?: string;
events?: MeetupEvent[];
foundedAt?: number;
latitude?: number;
longitude?: number;
name: string;
organizer?: string;
state?: string;
timezone?: string;
urlname?: string;
welcomeBlurb?: string;
zip?: string;
}

interface MeetupEventImage {
date: Date;
file: string;
original?: string;
res: number[][];
transforms: {
[key: string]: {
[format: string]: PhotoTransform;
};
};
}

export interface MeetupEventRaw {
description: string;
duration?: number;
howToFindUs?: string | null;
id: string;
image: MeetupEventImage;
time: Date;
title: string;
topics: string[];
venue: string;
}

export interface MeetupEvent {
description: string;
duration?: number;
howToFindUs?: string | null;
id: string;
image: MeetupEventImage;
time: Date;
title: string;
topics: string[];
venue?: string;
}

export async function useEvents(groupID: string) {
const res = await useFetch<MeetupEventDataRaw>(`${base}/events.json`);
const [data, error] = [res.data.value, res.error.value];
if (!data) {
throw error!;
}

let meetupEvents = data?.groups?.[groupID].events?.map((event) => {
const file = event.image.file.replace(/\..*$/, "");
return <MeetupEvent>{
description: event.description,
id: event.id,
time: event.time,
title: event.title,
topics: event.topics,
venue: data.venues.find((venue) => venue.id === event.venue),
image: {
date: event.image.date,
original: event.image.file,
transforms: data.transforms.reduce((sizes, transform, index) => {
const sizeRaw = event.image.res[index];
const size = {
width: sizeRaw[0],
height: sizeRaw[1],
};
sizes[data.transforms[index].key] = data.transforms[index].formats.reduce((formats, format) => {
formats[format] = {
file: `${base}/${file}@${transform.key}.${format}`,
size,
};
return formats;
}, {} as { [format: string]: PhotoTransform });
return sizes;
}, {} as { [key: string]: { [format: string]: PhotoTransform } }),
},
};
});
return meetupEvents;
}

// * Utility functions

/**
* Returns an array of unique items from an array of items
*
Expand Down

0 comments on commit 0aacb9c

Please sign in to comment.