Skip to content

Commit

Permalink
Set cookie as secure and fixed issue with renderer
Browse files Browse the repository at this point in the history
  • Loading branch information
brownbeardeveloper committed May 29, 2024
1 parent 640042f commit d219b85
Show file tree
Hide file tree
Showing 5 changed files with 36 additions and 38 deletions.
33 changes: 14 additions & 19 deletions src/components/read-mode-flow.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -17,23 +17,21 @@ export default function ReadModeFlow({ cookiePermission, savedPageIndex, setSave
updateBrowserTabText(pefObject.metaData.title)

useEffect(() => {
// Check if the scroll action has not been performed yet
if (!hasScrolled) {
if (savedPageIndex) {
const pageId = `page-${savedPageIndex}`;
const element = document.getElementById(pageId);

if (element) {
// Scroll the element into view smoothly and set focus on it
element.scrollIntoView({ behavior: 'smooth' });
element.focus();
// Mark the scroll action as performed
setHasScrolled(true);
} else {
console.error(`Error: Unable to find the specified element with id ${pageId}.`);
}
if (savedPageIndex === null && startPageIndex !== undefined) {
setSavedPageIndex(startPageIndex);
}
}, [savedPageIndex, startPageIndex]);

useEffect(() => {
if (!hasScrolled && savedPageIndex !== null) {
const pageId = `page-${savedPageIndex}`;
const element = document.getElementById(pageId);
if (element) {
element.scrollIntoView({ behavior: 'smooth' });
element.focus();
setHasScrolled(true);
} else {
console.error('Error: There is no saved page index or cookie.');
console.error(`Error: Unable to find the specified element with id ${pageId}.`);
}
}
}, [savedPageIndex, hasScrolled]);
Expand Down Expand Up @@ -190,9 +188,6 @@ export default function ReadModeFlow({ cookiePermission, savedPageIndex, setSave
startPageIndex = firstPageIndex
maxPageIndex = pageIndex - 1

// Set the first page as the current page if there's no saved page index
if (savedPageIndex === null) setSavedPageIndex(firstPageIndex);

return pagesFromPefObject
};

Expand Down
6 changes: 5 additions & 1 deletion src/components/upload-file.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,10 @@ export default function UploadFile({ setSavedPageIndex, setReadmode, pefObject,
}, []);

function handleAddFile(acceptedFiles) {

{/* for debug */}
// console.log("acceptedFiles:", acceptedFiles)

if (acceptedFiles) {
if (checkIfPefFileType(acceptedFiles[0].type)) {
setFileName(acceptedFiles[0].name);
Expand Down Expand Up @@ -106,7 +110,7 @@ export default function UploadFile({ setSavedPageIndex, setReadmode, pefObject,
</label>
) : (
<>
{fileName !== 'ingen fil vald' ? (
{(fileName !== 'ingen fil vald' && fileName !== 'filen kunde inte laddas upp.') ? (
<label htmlFor="file-input">
Filen {fileName} har laddats upp. Klicka här för att byta fil (.pef)
</label>
Expand Down
11 changes: 5 additions & 6 deletions src/pages/instruction.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ export default function InstructionPage({ cookiePermission, setCookiePermission
<h4 className="text-lg font-bold mb-2">2. Välj läsläge:</h4>
<p>Du kan välja mellan två läslägen:</p>
<ul className="list-disc pl-6">
<li className="m-2"><strong>"Löpande text":</strong> Texten visas löpande på webbsidan {/* med längre rader */} för en kontinuerlig läsupplevelse.</li>
<li className="m-2"><strong>"Löpande text":</strong> Texten visas löpande på webbsidan med längre rader för en kontinuerlig läsupplevelse.</li>
<li className="m-2"><strong>"Sida för sida":</strong> Varje sida från boken visas som en separat sida på webbsidan med samma radlängd som i den ursprungliga boken.</li>
</ul>
</div>
Expand All @@ -49,11 +49,10 @@ export default function InstructionPage({ cookiePermission, setCookiePermission
</p>
<ul className="list-disc pl-6">
<li className="my-2">
I läget "Löpande text" behöver du navigera till bokens titel och sedan vidare till den senaste sparade positionen markerad med en h3-rubrik. Därefter navigerar du med piltangenterna tills du har läst klart boken.
I läget "Löpande text" behöver du navigera till bokens titel med tabb och sedan vidare till den senaste sparade positionen markerad med en h3-rubrik. Därefter navigerar du med piltangenterna tills du har läst klart boken.
</li>
<li className="my-2">
I läget "Sida för sida" navigerar du till bokens titel och sedan till h3-rubriken som markerar sidnumret. Fortsätt nedåt tills du når knappen för nästa sida och klicka på den. När du klickar på nästa sida spelas ett ljud upp, och då ska du trycka på tabbakåt för att komma till nästa sidas h3-rubrik.
</li>
I läget 'Sida för sida' navigerar du med tabb till bokens titel och sedan till h3-rubriken som markerar sidnumret. Fortsätt nedåt tills du når knappen för nästa sida och klicka på den. När du klickar på knappen för nästa sida kommer du automatiskt att förflyttas till nästa sidas h3-rubrik. </li>
</ul>

</div>
Expand All @@ -68,9 +67,9 @@ export default function InstructionPage({ cookiePermission, setCookiePermission
<div className="mb-8">
<p>
<strong>
Vid anmärkningar om sidans tillgänglighet, gå till sidfoten och klicka på "Kakor och Tillgänglighet" för att komma till en sida där du kan lämna feedback och få kontaktuppgifter.
Vid anmärkningar om sidans tillgänglighet, gå till sidfoten och klicka på "Kakor och Tillgänglighet" för att komma till en sida där du kan lämna feedback och få kontaktuppgifter.
</strong>
</p>
</p>
</div>

<div className="w-full flex justify-center">
Expand Down
2 changes: 1 addition & 1 deletion src/pages/main.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ export default function MainPage({ cookiePermission }) {
}
// If the user has allowed cookies, savedPageIndex isn't null, and a pef file is uploaded,
// save the current position to the cookie when state changes
else if (cookiePermission === CookieEnum.ALLOWED && savedPageIndex && pefObject) {
else if (cookiePermission === CookieEnum.ALLOWED && savedPageIndex !== null && pefObject) {
setLatestPageIndexToCookie(pefObject.metaData.identifier, savedPageIndex);
}
// IMPORTANT: Otherwise, set the savedPageIndex to the index of the first page in the read-mode components
Expand Down
22 changes: 11 additions & 11 deletions src/services/cookieManager.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ import { CookieEnum } from '../data/enums';

export function setLatestPageIndexToCookie(bookId, pageIndex) {
try {
const pageId = `page-${pageIndex}`
const pageId = `page-${pageIndex}`;
const cookieJson = JSON.stringify(pageId);
Cookies.set(`${bookId}-latest-position`, cookieJson, { expires: 365 });
Cookies.set(`${bookId}-latest-position`, cookieJson, { expires: 365, sameSite: 'None', secure: true });
} catch (error) {
console.error('Error setting cookie:', error);
}
Expand All @@ -15,9 +15,9 @@ export function getLatestPageIndexFromCookieInt(bookId) {
try {
const cookieJson = Cookies.get(`${bookId}-latest-position`);
if (cookieJson) {
const cookieJsonToStr = JSON.parse(cookieJson)
const pageIndexStr = cookieJsonToStr.replace("page-", "")
return parseInt(pageIndexStr)
const cookieJsonToStr = JSON.parse(cookieJson);
const pageIndexStr = cookieJsonToStr.replace("page-", "");
return parseInt(pageIndexStr);
} else {
return null;
}
Expand All @@ -29,10 +29,10 @@ export function getLatestPageIndexFromCookieInt(bookId) {

export function setAllowCookie(boolean) {
try {
if(boolean) {
Cookies.set("allowCookie", CookieEnum.ALLOWED, { expires: 365 });
if (boolean) {
Cookies.set("allowCookie", CookieEnum.ALLOWED, { expires: 365, sameSite: 'None', secure: true });
} else {
Cookies.set("allowCookie", CookieEnum.DENIED, { expires: 1 });
Cookies.set("allowCookie", CookieEnum.DENIED, { expires: 1, sameSite: 'None', secure: true });
}
} catch (error) {
console.error('Error setting cookie:', error);
Expand All @@ -41,10 +41,10 @@ export function setAllowCookie(boolean) {

export function getAllowCookie() {
try {
const cookiePermission = Cookies.get("allowCookie")
return cookiePermission
const cookiePermission = Cookies.get("allowCookie");
return cookiePermission;
} catch (error) {
console.error('Error getting cookie:', error);
return null;
}
}
}

0 comments on commit d219b85

Please sign in to comment.