1+ // import { sendEvent } from './events'
12import Cookies from 'js-cookie'
23
4+ // Determines whether images are hidden or displayed on first visit.
5+ const hideImagesByDefault = false
6+
37// Set the image placeholder icon here.
48const placeholderImagePath = '/assets/images/octicons/image.svg'
59
610/*
711 * This module adds a new icon button in the margin to toggle all images on the page.
812 * It uses cookies to keep track of a user's selected image preference.
913 */
10- export default function ( hideImagesByDefault = false , focusButtonByDefault = false ) {
14+ export default function ( ) {
1115 const toggleImagesBtn = document . getElementById ( 'js-toggle-images' )
1216 if ( ! toggleImagesBtn ) return
1317
@@ -21,9 +25,7 @@ export default function (hideImagesByDefault = false, focusButtonByDefault = fal
2125 toggleImagesBtn . removeAttribute ( 'hidden' )
2226
2327 // Look for a cookie with image visibility preference; otherwise, use the default.
24- const hideImagesPreferred = Cookies . get ( 'hideImagesPreferred' ) === 'false'
25- ? false
26- : Cookies . get ( 'hideImagesPreferred' ) === 'true' || hideImagesByDefault
28+ const hideImagesPreferred = ( Cookies . get ( 'hideImagesPreferred' ) === 'true' ) || hideImagesByDefault
2729
2830 // Hide the images if that is the preference.
2931 if ( hideImagesPreferred ) {
@@ -40,18 +42,10 @@ export default function (hideImagesByDefault = false, focusButtonByDefault = fal
4042
4143 // Set the starting state depending on user preferences.
4244 if ( hideImagesPreferred ) {
43- onIcon . setAttribute ( 'hidden' , true )
4445 offIcon . removeAttribute ( 'hidden' )
4546 toggleImagesBtn . setAttribute ( 'aria-label' , tooltipImagesOff )
46-
47- // Show the tooltip if images are hidden by default to help users see the toggle button.
48- // Downside: the button will begin with focus whenever the user goes to a new page.
49- if ( focusButtonByDefault ) {
50- toggleImagesBtn . focus ( { preventScroll : true } )
51- }
5247 } else {
5348 onIcon . removeAttribute ( 'hidden' )
54- offIcon . setAttribute ( 'hidden' , true )
5549 toggleImagesBtn . setAttribute ( 'aria-label' , tooltipImagesOn )
5650 }
5751
@@ -75,14 +69,16 @@ export default function (hideImagesByDefault = false, focusButtonByDefault = fal
7569 }
7670
7771 // Remove focus from the button after click so the tooltip does not stay displayed.
78- // Use settimeout to work around Firefox-specific issue.
79- setTimeout ( ( ) => { toggleImagesBtn . blur ( ) } , 100 )
72+ toggleImagesBtn . blur ( )
8073
8174 // Save this preference as a cookie.
82- Cookies . set ( 'hideImagesPreferred' , showOnNextClick , { sameSite : 'strict' , secure : true } )
75+ Cookies . set ( 'hideImagesPreferred' , showOnNextClick )
8376
8477 // Toggle the action on every click.
8578 showOnNextClick = ! showOnNextClick
79+
80+ // TODO Track image toggle events
81+ // sendEvent({ type: 'imageToggle' })
8682 } )
8783}
8884
0 commit comments