Skip to content

doc: toggle all flavor selectors sticky on click #49526

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 8 commits into from
Sep 9, 2023
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
use localStorage instead of sessionStorage
  • Loading branch information
eldoy committed Sep 7, 2023
commit 7922161ac9610aac07b6c9540ab34f11c8f7f8b5
4 changes: 2 additions & 2 deletions doc/api_assets/api.js
Original file line number Diff line number Diff line change
Expand Up @@ -138,15 +138,15 @@

function setupFlavorSelectors() {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
function setupFlavorSelectors() {
function setupFlavorToggles() {

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This comment applies to all current suggestions:

If you want to change every mention of "select" to "toggle", then we also need to change all the CSS files and also all the existing functions in api.js and possibly more. There are also test cases that might be affected.

I think this renaming thing should go in a separate issue so we can land this feature. No need to spend time risking introducing other issues on something that is not really a problem imho.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think I've done all the preparation work in #49536, do you think I've missed something? We can't land this PR as is because it's now inconsistent with main, but I think all you need to do is to merge my suggestions and this can land as soon as we have a green CI.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, so you've committed the renaming directly onto main already?

The "setupCopyButton" function in doc/api_assets/api.js also uses the name "selector" everywhere, is that included? Not sure what else.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pushed merge and rename.

const kFlavorPreference = 'customFlavor';
const flavorSetting = sessionStorage.getItem(kFlavorPreference);
const flavorSetting = localStorage.getItem(kFlavorPreference);
const flavorSelectors = document.querySelectorAll('.js-flavor-selector');
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
const flavorSelectors = document.querySelectorAll('.js-flavor-selector');
const flavorToggles = document.querySelectorAll('.js-flavor-toggle');


flavorSelectors.forEach((selector) => {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
flavorSelectors.forEach((selector) => {
flavorToggles.forEach((toggle) => {

selector.checked = flavorSetting === 'true'
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is unoptimized. You're running this same check for every checkbox, knowing that this check is only needed once.

Also you probably don't need to set the value of the checkbox if flavorSetting is different from true

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pushed optimized code. You need to set the checkbox value also when it's not true, leaving that unchanged.

selector.addEventListener('change', (e) => {
const checked = e.target.checked;

sessionStorage.setItem(kFlavorPreference, checked);
localStorage.setItem(kFlavorPreference, checked);

flavorSelectors.forEach((el) => {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
flavorSelectors.forEach((el) => {
flavorToggles.forEach((el) => {

el.checked = checked;
Expand Down
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy