Remove all @firebase/util imports, replace uuidv4 with crypto.randomUUID
- Create src/utils/uuid.ts utility using crypto.randomUUID() - Replace all uuidv4 imports from @firebase/util across 11 component files - Replace base64 import in paypal.ts with Buffer-based implementation Made-with: Cursor
This commit is contained in:
@@ -13,7 +13,7 @@ import validateBlanks from "../validateBlanks";
|
|||||||
import { toast } from "react-toastify";
|
import { toast } from "react-toastify";
|
||||||
import setEditingAlert from "../../Shared/setEditingAlert";
|
import setEditingAlert from "../../Shared/setEditingAlert";
|
||||||
import PromptEdit from "../../Shared/PromptEdit";
|
import PromptEdit from "../../Shared/PromptEdit";
|
||||||
import { uuidv4 } from "@firebase/util";
|
import { uuidv4 } from "@/utils/uuid";
|
||||||
|
|
||||||
interface Word {
|
interface Word {
|
||||||
letter: string;
|
letter: string;
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import { toast } from "react-toastify";
|
|||||||
import setEditingAlert from "../../Shared/setEditingAlert";
|
import setEditingAlert from "../../Shared/setEditingAlert";
|
||||||
import { MdEdit, MdEditOff } from "react-icons/md";
|
import { MdEdit, MdEditOff } from "react-icons/md";
|
||||||
import MCOption from "./MCOption";
|
import MCOption from "./MCOption";
|
||||||
import { uuidv4 } from "@firebase/util";
|
import { uuidv4 } from "@/utils/uuid";
|
||||||
|
|
||||||
|
|
||||||
const FillBlanksMC: React.FC<{ exercise: FillBlanksExercise; sectionId: number }> = ({ exercise, sectionId }) => {
|
const FillBlanksMC: React.FC<{ exercise: FillBlanksExercise; sectionId: number }> = ({ exercise, sectionId }) => {
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ import { toast } from 'react-toastify';
|
|||||||
import { DragEndEvent } from '@dnd-kit/core';
|
import { DragEndEvent } from '@dnd-kit/core';
|
||||||
import { handleMatchSentencesReorder } from '@/stores/examEditor/reorder/local';
|
import { handleMatchSentencesReorder } from '@/stores/examEditor/reorder/local';
|
||||||
import PromptEdit from '../Shared/PromptEdit';
|
import PromptEdit from '../Shared/PromptEdit';
|
||||||
import { uuidv4 } from '@firebase/util';
|
import { uuidv4 } from '@/utils/uuid';
|
||||||
|
|
||||||
const MatchSentences: React.FC<{ exercise: MatchSentencesExercise, sectionId: number }> = ({ exercise, sectionId }) => {
|
const MatchSentences: React.FC<{ exercise: MatchSentencesExercise, sectionId: number }> = ({ exercise, sectionId }) => {
|
||||||
const { currentModule, dispatch } = useExamEditorStore();
|
const { currentModule, dispatch } = useExamEditorStore();
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import { useCallback, useEffect, useState } from "react";
|
|||||||
import { MdAdd } from "react-icons/md";
|
import { MdAdd } from "react-icons/md";
|
||||||
import Alert, { AlertItem } from "../../Shared/Alert";
|
import Alert, { AlertItem } from "../../Shared/Alert";
|
||||||
import PromptEdit from "../../Shared/PromptEdit";
|
import PromptEdit from "../../Shared/PromptEdit";
|
||||||
import { uuidv4 } from "@firebase/util";
|
import { uuidv4 } from "@/utils/uuid";
|
||||||
|
|
||||||
|
|
||||||
const UnderlineMultipleChoice: React.FC<{exercise: MultipleChoiceExercise, sectionId: number}> = ({
|
const UnderlineMultipleChoice: React.FC<{exercise: MultipleChoiceExercise, sectionId: number}> = ({
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ import SortableQuestion from '../../Shared/SortableQuestion';
|
|||||||
import setEditingAlert from '../../Shared/setEditingAlert';
|
import setEditingAlert from '../../Shared/setEditingAlert';
|
||||||
import { handleMultipleChoiceReorder } from '@/stores/examEditor/reorder/local';
|
import { handleMultipleChoiceReorder } from '@/stores/examEditor/reorder/local';
|
||||||
import PromptEdit from '../../Shared/PromptEdit';
|
import PromptEdit from '../../Shared/PromptEdit';
|
||||||
import { uuidv4 } from '@firebase/util';
|
import { uuidv4 } from '@/utils/uuid';
|
||||||
|
|
||||||
interface MultipleChoiceProps {
|
interface MultipleChoiceProps {
|
||||||
exercise: MultipleChoiceExercise;
|
exercise: MultipleChoiceExercise;
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ import setEditingAlert from '../Shared/setEditingAlert';
|
|||||||
import { DragEndEvent } from '@dnd-kit/core';
|
import { DragEndEvent } from '@dnd-kit/core';
|
||||||
import { handleTrueFalseReorder } from '@/stores/examEditor/reorder/local';
|
import { handleTrueFalseReorder } from '@/stores/examEditor/reorder/local';
|
||||||
import PromptEdit from '../Shared/PromptEdit';
|
import PromptEdit from '../Shared/PromptEdit';
|
||||||
import { uuidv4 } from '@firebase/util';
|
import { uuidv4 } from '@/utils/uuid';
|
||||||
|
|
||||||
const TrueFalse: React.FC<{ exercise: TrueFalseExercise, sectionId: number }> = ({ exercise, sectionId }) => {
|
const TrueFalse: React.FC<{ exercise: TrueFalseExercise, sectionId: number }> = ({ exercise, sectionId }) => {
|
||||||
const { currentModule, dispatch } = useExamEditorStore();
|
const { currentModule, dispatch } = useExamEditorStore();
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ import { validateEmptySolutions, validateQuestionText, validateWordCount } from
|
|||||||
import { handleWriteBlanksReorder } from '@/stores/examEditor/reorder/local';
|
import { handleWriteBlanksReorder } from '@/stores/examEditor/reorder/local';
|
||||||
import { ParsedQuestion, parseText, reconstructText } from './parsing';
|
import { ParsedQuestion, parseText, reconstructText } from './parsing';
|
||||||
import PromptEdit from '../Shared/PromptEdit';
|
import PromptEdit from '../Shared/PromptEdit';
|
||||||
import { uuidv4 } from '@firebase/util';
|
import { uuidv4 } from '@/utils/uuid';
|
||||||
|
|
||||||
|
|
||||||
const WriteBlanks: React.FC<{ sectionId: number; exercise: WriteBlanksExercise; }> = ({ sectionId, exercise }) => {
|
const WriteBlanks: React.FC<{ sectionId: number; exercise: WriteBlanksExercise; }> = ({ sectionId, exercise }) => {
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ import { validateQuestions, validateEmptySolutions, validateWordCount } from "./
|
|||||||
import Header from "../../Shared/Header";
|
import Header from "../../Shared/Header";
|
||||||
import BlanksFormEditor from "./BlanksFormEditor";
|
import BlanksFormEditor from "./BlanksFormEditor";
|
||||||
import PromptEdit from "../Shared/PromptEdit";
|
import PromptEdit from "../Shared/PromptEdit";
|
||||||
import { uuidv4 } from "@firebase/util";
|
import { uuidv4 } from "@/utils/uuid";
|
||||||
|
|
||||||
|
|
||||||
const WriteBlanksForm: React.FC<{ sectionId: number; exercise: WriteBlanksExercise }> = ({ sectionId, exercise }) => {
|
const WriteBlanksForm: React.FC<{ sectionId: number; exercise: WriteBlanksExercise }> = ({ sectionId, exercise }) => {
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import ai_usage from "@/utils/ai.detection";
|
|||||||
import { calculateBandScore, getGradingLabel } from "@/utils/score";
|
import { calculateBandScore, getGradingLabel } from "@/utils/score";
|
||||||
import moment from "moment";
|
import moment from "moment";
|
||||||
import { Assignment } from "@/interfaces/results";
|
import { Assignment } from "@/interfaces/results";
|
||||||
import { uuidv4 } from "@firebase/util";
|
import { uuidv4 } from "@/utils/uuid";
|
||||||
import { useRouter } from "next/router";
|
import { useRouter } from "next/router";
|
||||||
import { uniqBy } from "lodash";
|
import { uniqBy } from "lodash";
|
||||||
import { sortByModule } from "@/utils/moduleUtils";
|
import { sortByModule } from "@/utils/moduleUtils";
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import moment from "moment";
|
|||||||
import { ToastContainer } from "react-toastify";
|
import { ToastContainer } from "react-toastify";
|
||||||
import clsx from "clsx";
|
import clsx from "clsx";
|
||||||
import { shouldRedirectHome } from "@/utils/navigation.disabled";
|
import { shouldRedirectHome } from "@/utils/navigation.disabled";
|
||||||
import { uuidv4 } from "@firebase/util";
|
import { uuidv4 } from "@/utils/uuid";
|
||||||
import { usePDFDownload } from "@/hooks/usePDFDownload";
|
import { usePDFDownload } from "@/hooks/usePDFDownload";
|
||||||
import useRecordStore from "@/stores/recordStore";
|
import useRecordStore from "@/stores/recordStore";
|
||||||
import StatsGridItem from "@/components/Medium/StatGridItem";
|
import StatsGridItem from "@/components/Medium/StatGridItem";
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ import useTrainingContentStore from "@/stores/trainingContentStore";
|
|||||||
import axios from "axios";
|
import axios from "axios";
|
||||||
import { ITrainingContent } from "@/training/TrainingInterfaces";
|
import { ITrainingContent } from "@/training/TrainingInterfaces";
|
||||||
import moment from "moment";
|
import moment from "moment";
|
||||||
import { uuidv4 } from "@firebase/util";
|
import { uuidv4 } from "@/utils/uuid";
|
||||||
import TrainingScore from "@/training/TrainingScore";
|
import TrainingScore from "@/training/TrainingScore";
|
||||||
import ModuleBadge from "@/components/ModuleBadge";
|
import ModuleBadge from "@/components/ModuleBadge";
|
||||||
import RecordFilter from "@/components/Medium/RecordFilter";
|
import RecordFilter from "@/components/Medium/RecordFilter";
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import {TokenError, TokenSuccess} from "@/interfaces/paypal";
|
import {TokenError, TokenSuccess} from "@/interfaces/paypal";
|
||||||
import {base64} from "@firebase/util";
|
const base64 = { encodeString: (s: string) => Buffer.from(s).toString("base64") };
|
||||||
import axios from "axios";
|
import axios from "axios";
|
||||||
|
|
||||||
export const getAccessToken = async () => {
|
export const getAccessToken = async () => {
|
||||||
|
|||||||
3
src/utils/uuid.ts
Normal file
3
src/utils/uuid.ts
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
export function uuidv4(): string {
|
||||||
|
return crypto.randomUUID();
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user