Skip to content

Commit 40a28d5

Browse files
authored
Merge pull request #156 from Front-End-Coders-Mauritius/various-updates
eslint fixes
2 parents bfac5d6 + e1a871b commit 40a28d5

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

72 files changed

+5948
-2370
lines changed

.vscode/settings.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
{
2-
"editor.formatOnSave": true
3-
}
2+
"eslint.useFlatConfig": true,
3+
"editor.formatOnSave": true,
4+
"eslint.codeActionsOnSave.mode": "all"
5+
}

packages/frontendmu-data/data/meetups-raw.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

packages/frontendmu-data/data/speakers-raw.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

packages/frontendmu-nuxt/app.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22
<NuxtLayout>
33
<NuxtPage />
44
</NuxtLayout>
5-
</template>
5+
</template>

packages/frontendmu-nuxt/auth-utils/useAuth.ts

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
11
import { ref, computed, type Ref } from "vue";
22
import { getCookieValue, DIRECTUS_URL, mapToValidUser, base64Url } from '@/utils/helpers';
3-
import { createDirectus, rest, readMe, staticToken, authentication, updateItem, createItem, updateMe, readItems } from '@directus/sdk';
3+
import { createDirectus, rest, readMe, staticToken, authentication, updateItem, updateMe, readItems } from '@directus/sdk';
44

55
import type { Attendee, RSVPMetaData, RSVPResponse, SiteToast, User } from "../utils/types";
66
import type { DirectusAstroUser } from './../utils/types';
7-
import type { AuthenticationData, DirectusClient, AuthenticationClient, RestClient, DirectusUser } from '@directus/sdk';
7+
import type { AuthenticationData, DirectusClient, AuthenticationClient, RestClient } from '@directus/sdk';
88

99
const DIRECTUS_PROJECT_URL = DIRECTUS_URL()
1010

11-
let isAuth = ref(false);
12-
let user = ref<User | null>(null);
13-
let rawUser = ref<DirectusAstroUser | null>(null);
14-
let responseFromServer = ref<any>(null);
15-
let isLoading = ref(false);
16-
let meetupAttendees: Ref<Record<string, Attendee[]>> = ref({});
11+
const isAuth = ref(false);
12+
const user = ref<User | null>(null);
13+
const rawUser = ref<DirectusAstroUser | null>(null);
14+
const responseFromServer = ref<any>(null);
15+
const isLoading = ref(false);
16+
const meetupAttendees: Ref<Record<string, Attendee[]>> = ref({});
1717

18-
let toastMessage = ref<SiteToast>({
18+
const toastMessage = ref<SiteToast>({
1919
title: undefined,
2020
message: undefined,
2121
type: undefined,
@@ -128,7 +128,7 @@ export default function useAuth(client: DirectusClient<any> & AuthenticationClie
128128
await getCurrentUser()
129129
setAuth(true)
130130
if (!rawUser.value?.profile_picture) {
131-
let picture = await cloudFunctionUpdateProfilePicture(rawUser.value?.id || '')
131+
const picture = await cloudFunctionUpdateProfilePicture(rawUser.value?.id || '')
132132
console.log(picture)
133133
}
134134

@@ -261,7 +261,7 @@ export default function useAuth(client: DirectusClient<any> & AuthenticationClie
261261

262262
async function createRsvp({ eventId, userId }: { eventId: string, userId: string }) {
263263

264-
let payload = {
264+
const payload = {
265265
"Events": {
266266
"create": [{ "directus_users_id": userId, "Events_id": { "id": eventId } }],
267267
"update": [],
@@ -306,10 +306,10 @@ export default function useAuth(client: DirectusClient<any> & AuthenticationClie
306306

307307
client = await client.with(staticToken(token))
308308

309-
let eventIds = currentEventsRSVP.value.map(event => event.Events_id);
310-
let updatedEvents = currentEventsRSVP.value.filter(event => event.Events_id !== currentEventId);
309+
const eventIds = currentEventsRSVP.value.map(event => event.Events_id);
310+
const updatedEvents = currentEventsRSVP.value.filter(event => event.Events_id !== currentEventId);
311311

312-
let data = { Events: updatedEvents }
312+
const data = { Events: updatedEvents }
313313

314314
if (eventIds.includes(currentEventId)) {
315315
const confirmNotAttending = confirm('You are already attending this event! Do you want to remove yourself from the list?');
@@ -362,7 +362,7 @@ export default function useAuth(client: DirectusClient<any> & AuthenticationClie
362362
]
363363
}
364364

365-
// @ts-expect-error
365+
// @ts-expect-error Becauseitems is not typed
366366
const result = await client.request<RSVPResponse[]>(readItems('Events_directus_users', query_object));
367367
return result
368368

@@ -394,7 +394,7 @@ export default function useAuth(client: DirectusClient<any> & AuthenticationClie
394394
}
395395
}
396396

397-
// @ts-expect-error
397+
// @ts-expect-error Becauseitems is not typed
398398
const primaryKeyQuery = await client.request(readItems('Events_directus_users', query_object));
399399

400400
const updates = {
@@ -469,9 +469,9 @@ export default function useAuth(client: DirectusClient<any> & AuthenticationClie
469469
}
470470

471471
try {
472-
// @ts-expect-error
472+
// @ts-expect-error Becauseitems is not typed
473473
const result = await client.request<Attendee[]>(readItems('Events_directus_users', query_object));
474-
let attendees = filterAttendees(result);
474+
const attendees = filterAttendees(result);
475475
meetupAttendees.value[currentEventId] = attendees
476476
return attendees
477477
} catch (err) {
@@ -481,7 +481,7 @@ export default function useAuth(client: DirectusClient<any> & AuthenticationClie
481481

482482
}
483483

484-
async function updateUserVerification({ user_id, event_id, status }: { user_id: string, event_id: string, status: Boolean }) {
484+
async function updateUserVerification({ user_id, event_id, status }: { user_id: string, event_id: string, status: boolean }) {
485485
try {
486486
isLoading.value = true;
487487
const token = getCookieValue('access_token')
@@ -504,7 +504,7 @@ export default function useAuth(client: DirectusClient<any> & AuthenticationClie
504504
}
505505
}
506506

507-
// @ts-expect-error
507+
// @ts-expect-error Becauseitems is not typed
508508
const primaryKeyQuery = await client.request(readItems('Events_directus_users', query_object));
509509

510510
const updates = {

packages/frontendmu-nuxt/auth-utils/useAuthRedirect.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ export default function useAuthRedirect() {
88
});
99

1010
function setUrl() {
11-
let url = window.location.href;
11+
const url = window.location.href;
1212
// Store in session storage
1313
sessionStorage.setItem('redirectUrl', url);
1414
}
@@ -23,9 +23,9 @@ export default function useAuthRedirect() {
2323
window.location.href = redirectUrl;
2424
} , duration.value);
2525

26-
let intervalDelay = 10;
26+
const intervalDelay = 10;
2727
// start the countdown such that the progress bar is updated every 100ms and and the countdown reaches 0 in duration ms
28-
let interval = setInterval(() => {
28+
const interval = setInterval(() => {
2929
countdown.value -= intervalDelay;
3030
if (countdown.value <= 0) {
3131
clearInterval(interval);

packages/frontendmu-nuxt/components/OgImage/Speaker.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ withDefaults(defineProps<{
160160
style="
161161
border-radius: 50%;
162162
"
163-
/>
163+
>
164164
</div>
165165
<div
166166
style="

packages/frontendmu-nuxt/components/auth/AttendeeQRCode.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,6 @@ async function getCoordinates() {
4848
<template>
4949
<div class=" bg-white rounded-lg shadow-lg p-4 z-[1000] relative w-full flex justify-center">
5050
<img class="w-full aspect-square object-contain max-w-4xl"
51-
:src="`https://api.qrserver.com/v1/create-qr-code/?size=150x150&data=${infoJsonString}`" alt="QR Code" />
51+
:src="`https://api.qrserver.com/v1/create-qr-code/?size=150x150&data=${infoJsonString}`" alt="QR Code">
5252
</div>
5353
</template>

packages/frontendmu-nuxt/components/auth/FormLabel.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ const props = withDefaults(
1616
<template>
1717
<div class="flex flex-col md:flex-row gap-1 md:gap-4">
1818
<label :class="[labelClass]">{{ props.label }}</label>
19-
<input v-if="props.value" type="text" v-model="props.value" class="bg-transparent" :disabled="disabled" />
19+
<input v-if="props.value" v-model="props.value" type="text" class="bg-transparent" :disabled="disabled" >
2020

2121
<slot />
2222
</div>

packages/frontendmu-nuxt/components/auth/FormRadio.vue

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,11 @@ defineProps<{
1616
</script>
1717

1818
<template>
19-
<RadioGroupOption as="template" v-for="option in options" :key="option.name" :disabled="disabled"
20-
:value="returnValueOnly ? option.value : option" v-slot="{ active, checked }">
21-
<div :class="[
19+
<RadioGroupOption
20+
v-for="option in options" :key="option.name" v-slot="{ active, checked }" as="template"
21+
:disabled="disabled" :value="returnValueOnly ? option.value : option">
22+
<div
23+
:class="[
2224
active ? '' : '',
2325
checked
2426
? 'transition-all duration-100 ring-slate-800 bg-white dark:ring-white dark:text-black ring-2 dark:hover:bg-slate-100'
@@ -30,7 +32,8 @@ defineProps<{
3032
]">
3133
<RadioGroupLabel as="div" class="select-none text-center w-full">
3234
<Transition name="slide">
33-
<Icon name="material-symbols:check-circle" v-if="checked"
35+
<Icon
36+
v-if="checked" name="material-symbols:check-circle"
3437
class="bg-slate-800 dark:bg-white absolute -right-3 top-1/2 -translate-y-1/2 rounded-full w-5 h-5 text-green-600" />
3538
</Transition>
3639

packages/frontendmu-nuxt/components/auth/LoggedUser.vue

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
<script setup lang="ts">
22
import { onMounted } from 'vue';
33
import useAuth, { getClient } from '../../auth-utils/useAuth';
4-
const { user, logout, isLoggedIn, getCurrentUser, responseFromServer, checkIfLoggedIn, avatarUrl } = useAuth(getClient());
54
import { Menu, MenuButton, MenuItem, MenuItems } from '@headlessui/vue'
65
import { ChevronDownIcon } from '@heroicons/vue/20/solid'
76
import useAuthRedirect from '@/auth-utils/useAuthRedirect';
7+
const { user, logout, isLoggedIn, getCurrentUser, responseFromServer, checkIfLoggedIn, avatarUrl } = useAuth(getClient());
88
99
const { setUrl } = useAuthRedirect()
1010
@@ -17,11 +17,13 @@ onMounted(() => {
1717
<template>
1818
<div class="dark:text-zinc-200 dark:ring-white/10 pl-4">
1919

20-
<BaseButton v-if="!isLoggedIn" href="/login" :color="'primary'" class="font-medium hidden md:block"
20+
<BaseButton
21+
v-if="!isLoggedIn" href="/login" :color="'primary'" class="font-medium hidden md:block"
2122
@click="setUrl()">
2223
Log In
2324
</BaseButton>
24-
<BaseButton v-if="!isLoggedIn" href="/login" :color="'primary'" class="font-medium block md:hidden" size="sm"
25+
<BaseButton
26+
v-if="!isLoggedIn" href="/login" :color="'primary'" class="font-medium block md:hidden" size="sm"
2527
@click="setUrl()">
2628
Log In
2729
</BaseButton>
@@ -37,22 +39,25 @@ onMounted(() => {
3739
</MenuButton>
3840
</div>
3941

40-
<transition enter-active-class="transition ease-out duration-100"
42+
<transition
43+
enter-active-class="transition ease-out duration-100"
4144
enter-from-class="transform opacity-0 scale-95" enter-to-class="transform opacity-100 scale-100"
4245
leave-active-class="transition ease-in duration-75" leave-from-class="transform opacity-100 scale-100"
4346
leave-to-class="transform opacity-0 scale-95">
4447
<MenuItems
4548
class="absolute right-0 z-10 mt-2 w-56 origin-top-right divide-y divide-gray-100/10 rounded-md bg-zinc-500/20 dark:bg-verse-500/20 backdrop-blur-2xl shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none">
4649
<div class="py-1">
4750
<MenuItem v-slot="{ active }">
48-
<NuxtLink href="/user/me"
51+
<NuxtLink
52+
href="/user/me"
4953
:class="[active ? 'bg-gray-400/10 text-verse-900 dark:text-verse-100' : 'text-verse-900 dark:text-verse-100', 'block px-4 py-2 text-sm']">
5054
My
5155
Profile</NuxtLink>
5256
</MenuItem>
5357
<MenuItem v-slot="{ active }">
54-
<NuxtLink @click="logout()"
55-
:class="[active ? 'bg-gray-400/10 text-verse-900 dark:text-verse-100' : 'text-verse-900 dark:text-verse-100', 'block px-4 py-2 text-sm cursor-pointer']">
58+
<NuxtLink
59+
:class="[active ? 'bg-gray-400/10 text-verse-900 dark:text-verse-100' : 'text-verse-900 dark:text-verse-100', 'block px-4 py-2 text-sm cursor-pointer']"
60+
@click="logout()">
5661
Logout</NuxtLink>
5762
</MenuItem>
5863
</div>

packages/frontendmu-nuxt/components/auth/LoginForm.vue

Lines changed: 23 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ const developmentEnvironment = process.env.NODE_ENV === "development";
4141
</div>
4242

4343
<div class="grid grid-cols-2 gap-4 w-full justify-evenly">
44-
<BaseButton @click="logout" color="neutral">
44+
<BaseButton color="neutral" @click="logout">
4545
Logout
4646
</BaseButton>
4747
<BaseButton href="/user/me">
@@ -51,24 +51,28 @@ const developmentEnvironment = process.env.NODE_ENV === "development";
5151
</div>
5252
</div>
5353
<div v-else>
54-
<form class="space-y-6" @submit.prevent="login()" v-if="developmentEnvironment">
54+
<form v-if="developmentEnvironment" class="space-y-6" @submit.prevent="login()">
5555
<div>
56-
<label for="email"
56+
<label
57+
for="email"
5758
class="block text-sm font-medium leading-6 text-verse-900 dark:text-verse-100">Email
5859
address</label>
5960
<div class="mt-2">
60-
<input v-model="email" id="email" name="email" type="email" autocomplete="email" required
61-
class="block w-full rounded-md border-0 p-1.5 text-verse-900 shadow-sm ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-verse-600 sm:text-sm sm:leading-6" />
61+
<input
62+
id="email" v-model="email" name="email" type="email" autocomplete="email" required
63+
class="block w-full rounded-md border-0 p-1.5 text-verse-900 shadow-sm ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-verse-600 sm:text-sm sm:leading-6" >
6264
</div>
6365
</div>
6466

6567
<div>
66-
<label for="password"
68+
<label
69+
for="password"
6770
class="block text-sm font-medium leading-6 text-verse-900 dark:text-verse-100">Password</label>
6871
<div class="mt-2">
69-
<input v-model="password" id="password" name="password" type="password"
72+
<input
73+
id="password" v-model="password" name="password" type="password"
7074
autocomplete="current-password" required
71-
class="block w-full rounded-md border-0 p-1.5 text-verse-900 shadow-sm ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-verse-600 sm:text-sm sm:leading-6" />
75+
class="block w-full rounded-md border-0 p-1.5 text-verse-900 shadow-sm ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-verse-600 sm:text-sm sm:leading-6" >
7276
</div>
7377
</div>
7478

@@ -85,7 +89,8 @@ const developmentEnvironment = process.env.NODE_ENV === "development";
8589
</div> -->
8690

8791
<div>
88-
<button type="submit"
92+
<button
93+
type="submit"
8994
class="flex w-full justify-center rounded-md bg-verse-600 px-3 py-1.5 text-sm font-semibold leading-6 text-white shadow-sm hover:bg-verse-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-verse-600">Sign
9095
in</button>
9196
</div>
@@ -103,16 +108,19 @@ const developmentEnvironment = process.env.NODE_ENV === "development";
103108
</div>
104109

105110
<div class="mt-10 grid sm:grid-cols-2 gap-4">
106-
<a :href="oAuthLogin()"
111+
<a
112+
:href="oAuthLogin()"
107113
class="flex w-full items-center justify-center gap-3 rounded-md bg-[#000000] hover:bg-black/50 transition-all duration-300 px-3 py-1.5 text-white focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[#1D9BF0]">
108114
<Icon name="logos:google-icon" class="h-5 w-5" />
109115
<span class="text-sm font-semibold leading-6">Google</span>
110116
</a>
111117

112-
<a href="#" disabled
118+
<a
119+
href="#" disabled
113120
class="opacity-60 cursor-not-allowed flex w-full items-center justify-center gap-3 rounded-md bg-[#24292F] px-3 py-1.5 text-white focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[#24292F]">
114121
<svg class="h-5 w-5" aria-hidden="true" fill="currentColor" viewBox="0 0 20 20">
115-
<path fill-rule="evenodd"
122+
<path
123+
fill-rule="evenodd"
116124
d="M10 0C4.477 0 0 4.484 0 10.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0110 4.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.203 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.942.359.31.678.921.678 1.856 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0020 10.017C20 4.484 15.522 0 10 0z"
117125
clip-rule="evenodd" />
118126
</svg>
@@ -122,9 +130,9 @@ const developmentEnvironment = process.env.NODE_ENV === "development";
122130
</div>
123131
</div>
124132

125-
<div class="absolute bottom-0 left-0 bg-zinc-500/20 dark:bg-verse-500/20 backdrop-blur-2xl right-0 z-10 h-0"
126-
:style="{ height: countDownPercentage }">
127-
</div>
133+
<div
134+
class="absolute bottom-0 left-0 bg-zinc-500/20 dark:bg-verse-500/20 backdrop-blur-2xl right-0 z-10 h-0"
135+
:style="{ height: countDownPercentage }"/>
128136
</div>
129137
</div>
130138
</template>

0 commit comments

Comments
 (0)