diff --git a/src/components/view/Courses.jsx b/src/components/view/Courses.jsx
index ecd921b..17e3019 100644
--- a/src/components/view/Courses.jsx
+++ b/src/components/view/Courses.jsx
@@ -72,27 +72,18 @@ export const Courses = ({
}
data-course-id={id}
onClick={() => {
- if (!selectionSet.has(id))
- setSelection([...selection, id])
- else
- setSelection(
- selection.filter(selId => selId !== id)
- )
+ if (!selectionSet.has(id)) setSelection([...selection, id])
+ else setSelection(selection.filter(selId => selId !== id))
}}
>
-
- {prettyCourseName(courseEvents[0].name)}
-
-
- {profsPerCourse[id].join(', ')}
-
+
{prettyCourseName(courseEvents[0].name)}
+
{profsPerCourse[id].join(', ')}
{courseEvents.map(course => (
{WEEK_DAYS[course.start.getDay()]}{' '}
{format(course.start, 'H:mm')}–
- {format(course.end, 'H:mm')}{' '}
- {course.aule.join(', ')}
+ {format(course.end, 'H:mm')} {course.aule.join(', ')}
))}
diff --git a/src/components/view/Schedule.jsx b/src/components/view/Schedule.jsx
index 22eddc4..d558e16 100644
--- a/src/components/view/Schedule.jsx
+++ b/src/components/view/Schedule.jsx
@@ -3,11 +3,7 @@ import { useEffect, useRef, useState } from 'preact/hooks'
import _ from 'lodash'
import { differenceInMinutes, startOfDay } from 'date-fns'
-import {
- WEEK_DAYS_SHORT,
- prettyCourseName,
- usePersistentState,
-} from '../../utils.jsx'
+import { WEEK_DAYS_SHORT, prettyCourseName, usePersistentState } from '../../utils.jsx'
import { layoutEvents, layoutIntervals } from '../../interval-layout.js'
import { Popup } from '../Popup.jsx'
import { Icon } from '../Icon.jsx'
@@ -17,28 +13,23 @@ const TransposePopup = ({ onClose }) => {
- Attenzione! La tabella è stata
- trasposta!
+ Attenzione! La tabella è stata trasposta!
>
}
onClose={onClose}
>
-
- A grande richiesta popolare abbiamo trasposto la tabella
- dell'orario!
-
+ A grande richiesta popolare abbiamo trasposto la tabella dell'orario!
- Assicurati quindi di leggerla correttamente (dall'alto verso il
- basso invece che da sinistra verso destra).
+ Assicurati quindi di leggerla correttamente (dall'alto verso il basso
+ invece che da sinistra verso destra).
- Se preferisci utilizzare la versione vecchia, puoi utilizzare il
- pulsante Trasponi{' '}
- {' '}
- nell'origine della tabella per trasporla. Questa scelta verrà
- salvata nei cookie e verrà ricordata in futuro
+ Se preferisci utilizzare la versione vecchia, puoi utilizzare il pulsante
+ Trasponi {' '}
+ nell'origine della tabella per trasporla. Questa scelta verrà salvata nei
+ cookie e verrà ricordata in futuro
)
@@ -49,8 +40,8 @@ const NoCourseWarning = () => {
Non hai ancora selezionato nessun corso.
- Clicca sui corsi nelle altre visuali per selezionarli e
- visualizzarli nell'orario
+ Clicca sui corsi nelle altre visuali per selezionarli e visualizzarli
+ nell'orario
)
@@ -75,13 +66,10 @@ const Layout = ({ layout, day, colors }) => {
style={{
'--block-size': block.end - block.start,
'--size': event.end - event.start,
- '--relative-start':
- event.start - block.start,
+ '--relative-start': event.start - block.start,
'--index': event.index,
'--of': block.layers,
- '--color': `var(--event-${
- colors[event.id]
- })`,
+ '--color': `var(--event-${colors[event.id]})`,
}}
>
@@ -118,16 +106,11 @@ const ScheduleGrid = ({
class="small"
onClick={() =>
setOrientation(
- orientation === 'original'
- ? 'transposed'
- : 'original'
+ orientation === 'original' ? 'transposed' : 'original'
)
}
>
-
+
{[1, 2, 3, 4, 5].map(n => (
@@ -215,20 +198,9 @@ export const Schedule = ({ timetables, selection }) => {
'transpose_info',
'false'
)
- const [orientation, setOrientation] = usePersistentState(
- 'orientation',
- 'original'
- )
+ const [orientation, setOrientation] = usePersistentState('orientation', 'original')
- const colorList = [
- 'red',
- 'purple',
- 'blue',
- 'yellow',
- 'green',
- 'orange',
- 'lightblue',
- ]
+ const colorList = ['red', 'purple', 'blue', 'yellow', 'green', 'orange', 'lightblue']
const allEvents = timetables['tutti']
const selectionSet = new Set(selection)
diff --git a/src/interval-layout.js b/src/interval-layout.js
index 39b7472..5d24ac7 100644
--- a/src/interval-layout.js
+++ b/src/interval-layout.js
@@ -42,10 +42,7 @@ function layoutBlockEvents(events) {
let viableIndex = 0
while (
result.filter(
- e =>
- e.index === viableIndex &&
- e.start < event.end &&
- event.start < e.end
+ e => e.index === viableIndex && e.start < event.end && event.start < e.end
).length !== 0
) {
viableIndex += 1
@@ -57,8 +54,7 @@ function layoutBlockEvents(events) {
return result
}
export function layoutEvents(events) {
- const overlap = (event, block) =>
- event.start < block.end && block.start < event.end
+ const overlap = (event, block) => event.start < block.end && block.start < event.end
events.sort((a, b) => a.start - b.start)
@@ -68,10 +64,7 @@ export function layoutEvents(events) {
if (blocks.length > 0) {
layout = layout.filter(block => !overlap(event, block))
layout.push({
- start: Math.min(
- event.start,
- ...blocks.map(block => block.start)
- ),
+ start: Math.min(event.start, ...blocks.map(block => block.start)),
end: Math.max(event.end, ...blocks.map(block => block.end)),
events: blocks.flatMap(block => block.events).concat([event]),
})
diff --git a/src/main.jsx b/src/main.jsx
index 59a7a83..1bd1dd4 100644
--- a/src/main.jsx
+++ b/src/main.jsx
@@ -53,8 +53,7 @@ function specialEventPatches(eventi) {
// Il laboratorio del primo anno in realtà è in due gruppi separati
eventi.forEach(evento => {
if (
- evento.nome ===
- 'LABORATORIO DI INTRODUZIONE ALLA MATEMATICA COMPUTAZIONALE'
+ evento.nome === 'LABORATORIO DI INTRODUZIONE ALLA MATEMATICA COMPUTAZIONALE'
) {
if (evento.docenti[0].nome === 'GIOVANNI') {
evento.nome += ' (A)'
@@ -75,9 +74,7 @@ function formatEvents(timetable) {
name: _.split(nome, '-', 1)[0].trim(),
start: new Date(dataInizio),
end: new Date(dataFine),
- docenti: docenti.map(({ nome, cognome }) =>
- prettyProfName(nome, cognome)
- ),
+ docenti: docenti.map(({ nome, cognome }) => prettyProfName(nome, cognome)),
aule: aule.map(aula => prettyAulaName(aula.codice)),
}
})
@@ -191,10 +188,7 @@ const App = ({}) => {
// const [mode, setMode] = usePersistentState('orario.mode', MODE_COURSES)
// Selection
- const [selectedCourses, setSelectedCourses] = usePersistentState(
- 'selection',
- []
- )
+ const [selectedCourses, setSelectedCourses] = usePersistentState('selection', [])
// Menus
const [helpVisible, setHelpVisible] = useState(false)
@@ -265,16 +259,15 @@ const App = ({}) => {
) : timetables['tutti'].length === 0 ? (
- Non esistono corsi per la settimana selezionata:
- buone vacanze! 🎉
+ Non esistono corsi per la settimana selezionata: buone
+ vacanze! 🎉
- Per cambiare settimana puoi usare il widget
- Calendario (
+ Per cambiare settimana puoi usare il widget Calendario (
) in alto a destra
- In versione mobile, il widget Calendario è
- situato dentro il Menu (
+ In versione mobile, il widget Calendario è situato dentro
+ il Menu (
)
diff --git a/src/styles/main.scss b/src/styles/main.scss
index 303eb41..fba8b43 100644
--- a/src/styles/main.scss
+++ b/src/styles/main.scss
@@ -644,8 +644,7 @@ body {
border: 1px solid var(--border-600);
border-radius: 10px 10px 0 0;
- @media screen and (max-width: $device-s-width),
- (pointer: coarse) {
+ @media screen and (max-width: $device-s-width), (pointer: coarse) {
font-size: 12px;
}
@@ -700,10 +699,7 @@ body {
&.original {
grid-template-columns: auto repeat(5, 1fr);
- grid-template-rows: min-content repeat(
- var(--time-slots),
- 1fr
- );
+ grid-template-rows: min-content repeat(var(--time-slots), 1fr);
.transpose-button,
.day-label {
@@ -730,22 +726,16 @@ body {
}
.event-block-wrapper {
- grid-row: calc(var(--time-start) + 2) /
- calc(var(--time-end) + 2);
+ grid-row: calc(var(--time-start) + 2) / calc(var(--time-end) + 2);
grid-column: calc(var(--day-position) + 1);
.event-block {
.event-wrapper {
width: calc(100% / var(--of));
- height: calc(
- 100% * var(--size) / var(--block-size)
- );
+ height: calc(100% * var(--size) / var(--block-size));
transform: translateX(calc(100% * var(--index)))
translateY(
- calc(
- 100% * var(--relative-start) /
- var(--size)
- )
+ calc(100% * var(--relative-start) / var(--size))
);
}
}
@@ -753,10 +743,7 @@ body {
}
&.transposed {
grid-template-rows: auto repeat(5, 1fr);
- grid-template-columns: min-content repeat(
- var(--time-slots),
- 1fr
- );
+ grid-template-columns: min-content repeat(var(--time-slots), 1fr);
.transpose-button,
.day-label {
@@ -792,15 +779,10 @@ body {
.event-block {
.event-wrapper {
height: calc(100% / var(--of));
- width: calc(
- 100% * var(--size) / var(--block-size)
- );
+ width: calc(100% * var(--size) / var(--block-size));
transform: translateY(calc(100% * var(--index)))
translateX(
- calc(
- 100% * var(--relative-start) /
- var(--size)
- )
+ calc(100% * var(--relative-start) / var(--size))
);
}
}
diff --git a/src/utils.jsx b/src/utils.jsx
index f429e67..0ca2f03 100644
--- a/src/utils.jsx
+++ b/src/utils.jsx
@@ -12,15 +12,7 @@ export const WEEK_DAYS = [
'Sabato',
]
-export const WEEK_DAYS_SHORT = [
- 'Dom',
- 'Lun',
- 'Mar',
- 'Mer',
- 'Gio',
- 'Ven',
- 'Sab'
-]
+export const WEEK_DAYS_SHORT = ['Dom', 'Lun', 'Mar', 'Mer', 'Gio', 'Ven', 'Sab']
// Hashing
@@ -32,12 +24,8 @@ export function hashString(str, seed = 0) {
h1 = Math.imul(h1 ^ ch, 2654435761)
h2 = Math.imul(h2 ^ ch, 1597334677)
}
- h1 =
- Math.imul(h1 ^ (h1 >>> 16), 2246822507) ^
- Math.imul(h2 ^ (h2 >>> 13), 3266489909)
- h2 =
- Math.imul(h2 ^ (h2 >>> 16), 2246822507) ^
- Math.imul(h1 ^ (h1 >>> 13), 3266489909)
+ h1 = Math.imul(h1 ^ (h1 >>> 16), 2246822507) ^ Math.imul(h2 ^ (h2 >>> 13), 3266489909)
+ h2 = Math.imul(h2 ^ (h2 >>> 16), 2246822507) ^ Math.imul(h1 ^ (h1 >>> 13), 3266489909)
return 4294967296 * (2097151 & h2) + (h1 >>> 0)
}
@@ -50,9 +38,7 @@ export function prettyCourseName(name) {
.map(word => {
if (word.trim().length === 0) return word
- return /(^del|^nel|^di$|^dei$|^con$|^alla$|^per$|^e$|^la$)/.test(
- word
- )
+ return /(^del|^nel|^di$|^dei$|^con$|^alla$|^per$|^e$|^la$)/.test(word)
? word
: word[0].toUpperCase() + word.slice(1)
})
@@ -61,7 +47,7 @@ export function prettyCourseName(name) {
.replaceAll('IIi', 'III')
.replaceAll('Iii', 'III')
.replaceAll(/'(.)/g, ({}, letter) => "'" + letter.toUpperCase())
- .replaceAll(/\((a|b)\)/g, ({}, letter) => "(" + letter.toUpperCase() + ")")
+ .replaceAll(/\((a|b)\)/g, ({}, letter) => '(' + letter.toUpperCase() + ')')
}
export function prettyAulaName(name) {