Pinned subjects: a bad localStorage value crashes the page
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 35/100
- Type d'issue
- Bug
- Clarté
- Clairement spécifiée
- Activité
- À l'abandon
- Stack technique
- react, typescript
- Domaine
- frontend
Piste de recherche
Start with the listed reads in src/components/Searchbar/pinned-searchbar.tsx, src/components/CatalogueContent.tsx, src/components/PinnedPapersCarousel.tsx, and src/components/ui/PinnedModal.tsx, then check whether the project has a shared utility pattern. The issue calls for a helper that returns an empty list and clears the key when stored data is missing, invalid, or not an array of strings; done means all listed reads use it and the reproduction no longer crashes. An open linked pull request (#566) means this work is already under way.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Describe the bug
several components read pinned subjects with JSON.parse(localStorage.getItem("userSubjects") ?? "[]") w/o a try or catch and assume the result is an array
- src/components/Searchbar/pinned-searchbar.tsx (lines 56, 97, 136 and 155)
- src/components/CatalogueContent.tsx (lines 97 and 139)
- src/components/PinnedPapersCarousel.tsx (lines 66 and119)
- src/components/ui/PinnedModal.tsx (lines 105 and 147)
If the stored value isntt valid JSON, or isnt an array JSON.parse throws or .length/.filter fails, and the component crashes bad
To Reproduce
- In the browser console put localStorage.setItem("userSubjects", "oops")
- Reload a page that shows pinned subjects
- The page errors instead of showing an empty pinned list
Expected behavior
A small shared helper that returns [] (and clears the key) when the value is missing invalid or not an array of strings used everywhere these components read userSubjects
- Langage dominant
- TypeScript
- Étoiles
- 22
- Forks
- 66
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Préparer son environnement
- Fournit un Dockerfile ou un fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de CodeChefVIT/papers-codechef
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
CodeChefVIT/papers-codechef#552 ·
-
/api/upcoming-papers Throws 404 When No Exams are ActivePeut-être pris @Dx-Alz-xD l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
CodeChefVIT/papers-codechef#549 · 1 réaction ·
-
Hardcoded "BMAT102L" Default Course CodePeut-être pris @Dx-Alz-xD l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
CodeChefVIT/papers-codechef#548 ·
-
Search Bar NaN Sorting & Console Log SpamPeut-être pris @Dx-Alz-xD l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
CodeChefVIT/papers-codechef#547 ·
-
Local dev: upload, request and subscribe return 500 when Upstash isn't configuredPeut-être pris @Dx-Alz-xD l’a pris aujourd’hui. Ouverte
Difficulté 3/5 1-2 jours Accessibilité débutants 25/100
CodeChefVIT/papers-codechef#558 ·
Toutes les issues de CodeChefVIT/papers-codechef
Issues similaires
-
Language request: NixOuverteenhancement language
Difficulté 2/5 1-3 heures Accessibilité débutants 67/100
pngwn/twinkleplop#178 ·
-
Type: Bug
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
resend/react-email#3889 ·
Les mainteneurs répondent en général sous 1 jour
-
build P3
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
maniator/verticopolis#1945 ·
Les mainteneurs répondent en général sous 1 jour
-
Admin users page number stays stale after filteringPeut-être pris @matthewxkong l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 1 jour
-
feature request needs triage
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100