add prop to disable favicon and title change
This commit is contained in:
parent
49e5faa39a
commit
bcf6b1e1d0
@ -26,9 +26,10 @@ type Props = {
|
|||||||
quizSettings?: QuizSettings;
|
quizSettings?: QuizSettings;
|
||||||
quizId: string;
|
quizId: string;
|
||||||
preview?: boolean;
|
preview?: boolean;
|
||||||
|
changeFaviconAndTitle?: boolean;
|
||||||
};
|
};
|
||||||
|
|
||||||
export default function QuizAnswerer({ quizSettings, quizId, preview = false }: Props) {
|
export default function QuizAnswerer({ quizSettings, quizId, preview = false, changeFaviconAndTitle = true }: Props) {
|
||||||
const [quizViewStore] = useState(createQuizViewStore);
|
const [quizViewStore] = useState(createQuizViewStore);
|
||||||
const [rootContainerWidth, setRootContainerWidth] = useState<number>(() => window.innerWidth);
|
const [rootContainerWidth, setRootContainerWidth] = useState<number>(() => window.innerWidth);
|
||||||
const rootContainerRef = useRef<HTMLDivElement>(null);
|
const rootContainerRef = useRef<HTMLDivElement>(null);
|
||||||
@ -65,7 +66,7 @@ export default function QuizAnswerer({ quizSettings, quizId, preview = false }:
|
|||||||
return (
|
return (
|
||||||
<QuizViewContext.Provider value={quizViewStore}>
|
<QuizViewContext.Provider value={quizViewStore}>
|
||||||
<RootContainerWidthContext.Provider value={rootContainerWidth}>
|
<RootContainerWidthContext.Provider value={rootContainerWidth}>
|
||||||
<QuizDataContext.Provider value={{ ...quizSettings, quizId, preview }}>
|
<QuizDataContext.Provider value={{ ...quizSettings, quizId, preview, changeFaviconAndTitle }}>
|
||||||
<LocalizationProvider dateAdapter={AdapterMoment} adapterLocale="ru" localeText={localeText}>
|
<LocalizationProvider dateAdapter={AdapterMoment} adapterLocale="ru" localeText={localeText}>
|
||||||
<ThemeProvider theme={lightTheme}>
|
<ThemeProvider theme={lightTheme}>
|
||||||
<SnackbarProvider
|
<SnackbarProvider
|
||||||
|
|||||||
@ -15,7 +15,7 @@ import NextButton from "./tools/NextButton";
|
|||||||
import PrevButton from "./tools/PrevButton";
|
import PrevButton from "./tools/PrevButton";
|
||||||
|
|
||||||
export default function ViewPublicationPage() {
|
export default function ViewPublicationPage() {
|
||||||
const { settings, recentlyCompleted, quizId, preview } = useQuizData();
|
const { settings, recentlyCompleted, quizId, preview, changeFaviconAndTitle } = useQuizData();
|
||||||
const answers = useQuizViewStore(state => state.answers);
|
const answers = useQuizViewStore(state => state.answers);
|
||||||
let currentQuizStep = useQuizViewStore((state) => state.currentQuizStep);
|
let currentQuizStep = useQuizViewStore((state) => state.currentQuizStep);
|
||||||
const {
|
const {
|
||||||
@ -30,17 +30,16 @@ export default function ViewPublicationPage() {
|
|||||||
|
|
||||||
const isAnswer = answers.some(ans => ans.questionId === currentQuestion.id);
|
const isAnswer = answers.some(ans => ans.questionId === currentQuestion.id);
|
||||||
|
|
||||||
useEffect(
|
useEffect(function setFaviconAndTitle() {
|
||||||
function setFaviconAndTitle() {
|
if (!changeFaviconAndTitle) return;
|
||||||
const link = document.querySelector('link[rel="icon"]');
|
|
||||||
if (link && settings.cfg.startpage.favIcon) {
|
|
||||||
link.setAttribute("href", settings.cfg.startpage.favIcon);
|
|
||||||
}
|
|
||||||
|
|
||||||
document.title = settings.name;
|
const link = document.querySelector('link[rel="icon"]');
|
||||||
},
|
if (link && settings.cfg.startpage.favIcon) {
|
||||||
[settings]
|
link.setAttribute("href", settings.cfg.startpage.favIcon);
|
||||||
);
|
}
|
||||||
|
|
||||||
|
document.title = settings.name;
|
||||||
|
}, [changeFaviconAndTitle, settings.cfg.startpage.favIcon, settings.name]);
|
||||||
|
|
||||||
if (recentlyCompleted) throw new Error("Quiz already completed");
|
if (recentlyCompleted) throw new Error("Quiz already completed");
|
||||||
if (currentQuizStep === "startpage" && settings.cfg.noStartPage)
|
if (currentQuizStep === "startpage" && settings.cfg.noStartPage)
|
||||||
|
|||||||
@ -1,7 +1,11 @@
|
|||||||
import { QuizSettings } from "@model/settingsData";
|
import { QuizSettings } from "@model/settingsData";
|
||||||
import { createContext, useContext } from "react";
|
import { createContext, useContext } from "react";
|
||||||
|
|
||||||
type QuizData = QuizSettings & { quizId: string; preview: boolean; };
|
type QuizData = QuizSettings & {
|
||||||
|
quizId: string;
|
||||||
|
preview: boolean;
|
||||||
|
changeFaviconAndTitle: boolean;
|
||||||
|
};
|
||||||
|
|
||||||
export const QuizDataContext = createContext<QuizData | null>(null);
|
export const QuizDataContext = createContext<QuizData | null>(null);
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user