diff --git a/.eslintrc.js b/.eslintrc.cjs similarity index 100% rename from .eslintrc.js rename to .eslintrc.cjs diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 36c25d7..fdfe270 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -39,6 +39,9 @@ jobs: build: runs-on: ubuntu-latest + needs: + - lint + - format steps: - name: Checkout uses: actions/checkout@v2 @@ -66,10 +69,7 @@ jobs: - name: Upload chrome extension uses: actions/upload-artifact@v2 with: - name: Chrome extension - path: chrome.zip - - name: Upload firefox extension - uses: actions/upload-artifact@v2 - with: - name: Firefox extension - path: firefox.zip + name: Extension + path: | + chrome.zip + firefox.zip diff --git a/.postcssrc.js b/.postcssrc.js index fdd7bd0..fc044bc 100644 --- a/.postcssrc.js +++ b/.postcssrc.js @@ -3,7 +3,7 @@ import Tailwind from "tailwindcss"; export default { plugins: [ - PostcssPresetEnv, + PostcssPresetEnv, // Tailwind ], }; diff --git a/.prettierrc.js b/.prettierrc.js index 5de7a0c..56fbdcb 100644 --- a/.prettierrc.js +++ b/.prettierrc.js @@ -1,10 +1,15 @@ /** @type {import("prettier").Options} */ export default { - semi: true, - trailingComma: "all", - singleQuote: false, printWidth: 80, tabWidth: 4, - endOfLine: "auto", useTabs: false, + semi: true, + singleQuote: false, + quoteProps: "consistent", + jsxSingleQuote: false, + trailingComma: "all", + bracketSpacing: true, + bracketSameLine: true, + arrowParens: "always", + endOfLine: "auto", }; diff --git a/package.json b/package.json index 2b6c386..7d620c5 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "watch": "vite build --watch --mode development --minify false", "dev": "vite", "lint": "eslint .", - "lint:fix": "eslint . --fix", + "lint:fix": "eslint --fix .", "format": "prettier --check .", "format:fix": "prettier --log-level warn --write ." }, diff --git a/src/common/options.ts b/src/common/options.ts index 4b40a03..e71edbd 100644 --- a/src/common/options.ts +++ b/src/common/options.ts @@ -21,7 +21,7 @@ const options = { description: "Automatically login to sigarra", type: "boolean", default: false, - } + }, } as const satisfies Record; export default options; diff --git a/src/components/controls/CheckboxControl.tsx b/src/components/controls/CheckboxControl.tsx index 507233a..9d5bfee 100644 --- a/src/components/controls/CheckboxControl.tsx +++ b/src/components/controls/CheckboxControl.tsx @@ -33,8 +33,7 @@ function CheckboxControl({ label, storageKey, defaultState = false }: Props) {
diff --git a/src/components/layout/Footer.tsx b/src/components/layout/Footer.tsx index 3e37935..b3cc0c0 100644 --- a/src/components/layout/Footer.tsx +++ b/src/components/layout/Footer.tsx @@ -6,8 +6,7 @@ const Footer = () => { diff --git a/src/components/layout/Header.tsx b/src/components/layout/Header.tsx index 1454548..58782ad 100644 --- a/src/components/layout/Header.tsx +++ b/src/components/layout/Header.tsx @@ -13,8 +13,7 @@ const Header = () => ( href="https://ni.fe.up.pt" target="_blank" rel="noreferrer" - className="text-red hover:underline font-bold cursor-pointer" - > + className="text-red hover:underline font-bold cursor-pointer"> niaefeup

diff --git a/src/components/sections/Layout.tsx b/src/components/sections/Layout.tsx index 96a4fae..96ca649 100644 --- a/src/components/sections/Layout.tsx +++ b/src/components/sections/Layout.tsx @@ -1,11 +1,11 @@ +import React from "react"; import LayoutContent from "./LayoutContent"; const Layout = () => (
diff --git a/src/components/sections/LayoutContent.tsx b/src/components/sections/LayoutContent.tsx index 7516f09..6b95f62 100644 --- a/src/components/sections/LayoutContent.tsx +++ b/src/components/sections/LayoutContent.tsx @@ -1,3 +1,4 @@ +import React from "react"; import SwitchControl from "../controls/SwitchControl"; const LayoutContent = () => ( diff --git a/src/content-scripts/modules/icons/constants.ts b/src/content-scripts/modules/icons/constants.ts index f1099d3..a97ad5b 100644 --- a/src/content-scripts/modules/icons/constants.ts +++ b/src/content-scripts/modules/icons/constants.ts @@ -1,11 +1,11 @@ export const IMG_ICON_MAP: Record = { - Acreditado: "checkbox-circle", - Alerta: "alert", - Apagar: "close-circle", - Aprovado: "checkbox-circle", - Arroba: "at", - Ascendente: "arrow-up-s", - AscendenteS: "arrow-up-s", + "Acreditado": "checkbox-circle", + "Alerta": "alert", + "Apagar": "close-circle", + "Aprovado": "checkbox-circle", + "Arroba": "at", + "Ascendente": "arrow-up-s", + "AscendenteS": "arrow-up-s", "atalho_administracao.gif": "admin", "atalho_computador.gif": "computer", "atalho_coracao.gif": "heart", @@ -28,29 +28,29 @@ export const IMG_ICON_MAP: Record = { "atalho_smile_feliz.gif": "emotion-happy", "atalho_smile_triste.gif": "emotion-unhappy", "atalho_tomada.gif": "plug", - BotaoColapsar: "close-circle", - BotaoMin: "close-circle", - BotaoPersonalisar: "edit", - BotaoRestaurar: "add-circle", + "BotaoColapsar": "close-circle", + "BotaoMin": "close-circle", + "BotaoPersonalisar": "edit", + "BotaoRestaurar": "add-circle", "CERT-Certidao": "file-paper-2", "CERT-Visto": "checkbox-circle", - Comentario: "edit", - Completo: "checkbox-circle", - CriarNovo: "add-circle", - Descendente: "arrow-down-s", - DescendenteS: "arrow-down-s", - Documento: "file-text", - DocumentoCriar: "file-add", - EditarPerfil: "edit", - EnderecoEmail: "mail", - Erro: "error-warning", - EstadoSem1_off: "arrow-up-circle", - EstadoSem1: "checkbox-circle", - EstadoSem2: "arrow-down-circle", - EstadoSem3: "refresh", - EstadoSem4: "close-circle", + "Comentario": "edit", + "Completo": "checkbox-circle", + "CriarNovo": "add-circle", + "Descendente": "arrow-down-s", + "DescendenteS": "arrow-down-s", + "Documento": "file-text", + "DocumentoCriar": "file-add", + "EditarPerfil": "edit", + "EnderecoEmail": "mail", + "Erro": "error-warning", + "EstadoSem1_off": "arrow-up-circle", + "EstadoSem1": "checkbox-circle", + "EstadoSem2": "arrow-down-circle", + "EstadoSem3": "refresh", + "EstadoSem4": "close-circle", "facebook_32.png": "facebook-box", - Fazer: "indeterminate-circle", + "Fazer": "indeterminate-circle", "FEST-Selecionado": "radio-button", "FEST-Selecionar": "checkbox-blank-circle", "GENT-ContactoAguarda": "error-warning", @@ -59,86 +59,86 @@ export const IMG_ICON_MAP: Record = { "GPAG-Documento": "file-text", "GPAG-MB": "bank-card-2", "In_Logo_Web4Print_CMYK_1in.jpg": "linkedin-box", - Informa: "information", - Inscrito: "indeterminate-circle", + "Informa": "information", + "Inscrito": "indeterminate-circle", "instagram40x40.png": "instagram", "IT-AlocAdm": "admin", "IT-Email": "mail", "IT-Fotos4x4": "layout-grid", "IT-Fotos6x6": "grid", - LegendaSemaforos: "question", - Limpar: "eraser", - ListaMais: "add-circle", - ListaMenos: "close-circle", - LOV: "arrow-left", - Lupa: "search", - MarcaTemporal: "checkbox-circle", - MarcaTemporalActivo: "play-circle", - MarcaTemporalOff: "checkbox-blank-circle", - Mensagem: "chat-4", - MensagemBBom: "emotion-laugh", - MensagemBom: "emotion-happy", - MensagemFilhos: "question-answer", - MensagemMau: "emotion-sad", - MensagemMMau: "emotion-unhappy", - MensagemNao: "thumb-down", - MensagemNeutro: "emotion-normal", - MensagemNova: "folder-unknown", - MensagemResponder: "edit", - MensagemSemFilhos: "chat-off", - MensagemSim: "thumb-up", - MensagemVelha: "folder", - MensagemVelhaV: "folder-open", - MenuContextoDetalhesMaisG: "zoom-in", - MenuContextoDetalhesMenosG: "zoom-out", - MenuContextoEditarG: "edit", - MenuContextoImagemPisoDescerOff: "arrow-right-down", - MenuContextoImagemPisoSubirOff: "arrow-right-up", - MenuContextoInicioG: "", - MoodleIcon: undefined, - NaoInscrito: "close-circle", - Novo: "star", - Obr: "asterisk", - PaginaWeb: "global", - Pasta: "folder-open", - PastaFechada: "folder", - QuadradoMaisPeq: "add-circle", - QuadradoMenosPeq: "close-circle", - QuadradoPequenoMais: "add-circle", - QuadradoPequenoMenos: "close-circle", - ResultadoActual: "map-pin", // TODO (toino): find better icon - ResultadoAnt: "arrow-left-s", - ResultadoAntFin: "skip-back", - ResultadoAntInt: "more", - ResultadoSeg: "arrow-right-s", - ResultadoSegFin: "skip-forward", - ResultadoSegInt: "more", - SemAmarelo: "indeterminate-circle", - SemPermissoes: "error-warning", - SemRegistos: "forbid", - SemVerde: "checkbox-circle", - SemVermelho: "error-warning", - SetaDir: "arrow-right", + "LegendaSemaforos": "question", + "Limpar": "eraser", + "ListaMais": "add-circle", + "ListaMenos": "close-circle", + "LOV": "arrow-left", + "Lupa": "search", + "MarcaTemporal": "checkbox-circle", + "MarcaTemporalActivo": "play-circle", + "MarcaTemporalOff": "checkbox-blank-circle", + "Mensagem": "chat-4", + "MensagemBBom": "emotion-laugh", + "MensagemBom": "emotion-happy", + "MensagemFilhos": "question-answer", + "MensagemMau": "emotion-sad", + "MensagemMMau": "emotion-unhappy", + "MensagemNao": "thumb-down", + "MensagemNeutro": "emotion-normal", + "MensagemNova": "folder-unknown", + "MensagemResponder": "edit", + "MensagemSemFilhos": "chat-off", + "MensagemSim": "thumb-up", + "MensagemVelha": "folder", + "MensagemVelhaV": "folder-open", + "MenuContextoDetalhesMaisG": "zoom-in", + "MenuContextoDetalhesMenosG": "zoom-out", + "MenuContextoEditarG": "edit", + "MenuContextoImagemPisoDescerOff": "arrow-right-down", + "MenuContextoImagemPisoSubirOff": "arrow-right-up", + "MenuContextoInicioG": "", + "MoodleIcon": undefined, + "NaoInscrito": "close-circle", + "Novo": "star", + "Obr": "asterisk", + "PaginaWeb": "global", + "Pasta": "folder-open", + "PastaFechada": "folder", + "QuadradoMaisPeq": "add-circle", + "QuadradoMenosPeq": "close-circle", + "QuadradoPequenoMais": "add-circle", + "QuadradoPequenoMenos": "close-circle", + "ResultadoActual": "map-pin", // TODO (toino): find better icon + "ResultadoAnt": "arrow-left-s", + "ResultadoAntFin": "skip-back", + "ResultadoAntInt": "more", + "ResultadoSeg": "arrow-right-s", + "ResultadoSegFin": "skip-forward", + "ResultadoSegInt": "more", + "SemAmarelo": "indeterminate-circle", + "SemPermissoes": "error-warning", + "SemRegistos": "forbid", + "SemVerde": "checkbox-circle", + "SemVermelho": "error-warning", + "SetaDir": "arrow-right", "SUMARIOS-Anexo": "attachment", "SUMARIOS-AnexoOff": "attachment", "SUMARIOS-VerSumario": "file-text", "SUMARIOS-VerSumarioOff": "file-text", - Telef: "phone", - Visto: "checkbox-circle", + "Telef": "phone", + "Visto": "checkbox-circle", "youtube_32.png": "youtube", - ZipPeq: "file-zip", + "ZipPeq": "file-zip", } as const; export const FA_ICON_MAP: Record = { - bars: "menu", + "bars": "menu", "ellipsis-v": "more-2", "envelope-o": "mail", - fax: "printer", // TODO (toino): find better icon - laptop: "computer", - phone: "phone", + "fax": "printer", // TODO (toino): find better icon + "laptop": "computer", + "phone": "phone", "plus-circle": "add-circle", - unlock: "login-circle", - envelope: "mail-unread", + "unlock": "login-circle", + "envelope": "mail-unread", } as const; export const BANNER_ICON_MAP: Record = { diff --git a/src/content-scripts/modules/options/autoLogin.ts b/src/content-scripts/modules/options/autoLogin.ts index 75f4986..86eaed6 100644 --- a/src/content-scripts/modules/options/autoLogin.ts +++ b/src/content-scripts/modules/options/autoLogin.ts @@ -1,6 +1,5 @@ -import { rememberLogin } from "../login" +import { rememberLogin } from "../login"; export default (value: boolean) => { - if (value) - rememberLogin() -} \ No newline at end of file + if (value) rememberLogin(); +}; diff --git a/src/content-scripts/pages/account.ts b/src/content-scripts/pages/account.ts index 35f8adb..e6d00f3 100644 --- a/src/content-scripts/pages/account.ts +++ b/src/content-scripts/pages/account.ts @@ -1,5 +1,5 @@ const statusProperties = { - Pago: { + "Pago": { class: "success", text: "Pago", }, @@ -7,7 +7,7 @@ const statusProperties = { class: "pending", text: "Pendente", }, - Anulado: { + "Anulado": { class: "cancelled", text: "Anulado", }, diff --git a/src/content-scripts/pages/schedule.ts b/src/content-scripts/pages/schedule.ts index e149b37..629fe85 100644 --- a/src/content-scripts/pages/schedule.ts +++ b/src/content-scripts/pages/schedule.ts @@ -2,16 +2,16 @@ import { lcmAll } from "~/common/math"; import { keys } from "~/common/objects"; const CLASS_TYPE_TO_ABBR = { - Teórica: "TE", + "Teórica": "TE", "Teórico-Prática": "TP", - Prática: "P", - Laboratório: "PL", + "Prática": "P", + "Laboratório": "PL", "Orientação Tutorial": "OT", "Prática Laboratorial": "PL", "Trabalho de Campo": "TC", - Seminário: "S", - Almoço: "almoco", - Outra: "O", + "Seminário": "S", + "Almoço": "almoco", + "Outra": "O", } as const; const CLASS_ABBR_TO_ABBR = { T: "TE", diff --git a/src/options/index.html b/src/options/index.html index d01f779..329727d 100644 --- a/src/options/index.html +++ b/src/options/index.html @@ -1,11 +1,9 @@ - + - - - - Document - - - - - \ No newline at end of file + + + + Document + + + diff --git a/src/popup/index.html b/src/popup/index.html index d01f779..329727d 100644 --- a/src/popup/index.html +++ b/src/popup/index.html @@ -1,11 +1,9 @@ - + - - - - Document - - - - - \ No newline at end of file + + + + Document + + + diff --git a/src/post-install/Authorize.tsx b/src/post-install/Authorize.tsx index 4ed510a..9ed5170 100644 --- a/src/post-install/Authorize.tsx +++ b/src/post-install/Authorize.tsx @@ -14,6 +14,6 @@ const Authorize = () => {
); -} +}; export default Authorize; diff --git a/vite.config.ts b/vite.config.ts index 05b373a..1c7b90f 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -17,7 +17,7 @@ export default defineConfig(() => { }), ], resolve: { - alias: { + "alias": { "~": path.resolve(__dirname, "./src"), }, // In dev mode, make sure fast refresh works