Skip to content

Commit

Permalink
Use useLayoutEffect to set isLoaded state and add isDisabled state to…
Browse files Browse the repository at this point in the history
… PopoverButton
  • Loading branch information
gfbollingerHakuna committed Aug 21, 2024
1 parent f7c12c5 commit 71ee1c4
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 5 deletions.
3 changes: 2 additions & 1 deletion src/components/releaseNotePopoverCategorySelector.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import React, { useState } from "react"
import { activeReleaseNoteCategories } from "../data/releaseNoteCategories"
import { Button, FlexContainer, Popover } from "@pantheon-systems/pds-toolkit-react"

const ReleaseNotePopoverCategorySelector = ({filters, setFilters, setCurrentPage}) => {
const ReleaseNotePopoverCategorySelector = ({filters, setFilters, setCurrentPage, isDisabled}) => {
const [isPopoverOpen, setIsPopoverOpen] = useState(false)

// Get the active categories data.
Expand Down Expand Up @@ -103,6 +103,7 @@ const ReleaseNotePopoverCategorySelector = ({filters, setFilters, setCurrentPage
iconName={popoverTriggerIcon}
displayType='icon-end'
onClick={() => setIsPopoverOpen(true)}
disabled={isDisabled}
/>
)

Expand Down
3 changes: 2 additions & 1 deletion src/components/releaseNotesPager.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import React from 'react'
import { Icon } from "@pantheon-systems/pds-toolkit-react"
import { navigate } from 'gatsby'

const ReleaseNotesPager = ({currentPage, setCurrentPage, totalPagesRef, queryStrings }) => {
const ReleaseNotesPager = ({currentPage, setCurrentPage, totalPagesRef, queryStrings, setIsPageLoaded }) => {
const scrollToTop = () => {
window.scrollTo({
top: 0,
Expand All @@ -11,6 +11,7 @@ const ReleaseNotesPager = ({currentPage, setCurrentPage, totalPagesRef, queryStr
}

const handlePageChange = (newPage) => {
setIsPageLoaded(false)
setCurrentPage(newPage)
navigate(`/release-notes/${newPage}/?${queryStrings}`)
scrollToTop()
Expand Down
11 changes: 8 additions & 3 deletions src/templates/releaseNotesListing/index.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import React, { useEffect, useState, useRef } from "react"
import React, { useEffect, useState, useRef, useLayoutEffect } from "react"
import { graphql, navigate } from "gatsby"
import debounce from "lodash.debounce"
import Mark from "mark.js"
Expand Down Expand Up @@ -37,6 +37,7 @@ const ReleaseNotesListingTemplate = ({ data }) => {
})
const [currentPage, setCurrentPage] = useState(1)
const [queryStrings, setQueryStrings] = useState('')
const [isLoaded, setIsLoaded] = useState(false);

const notesPerPage = 8
let totalPagesRef = useRef(0)
Expand Down Expand Up @@ -241,6 +242,10 @@ const ReleaseNotesListingTemplate = ({ data }) => {
// Preprocess intro text.
const introText = data.releasenotesYaml.introText

useLayoutEffect(() => {
setIsLoaded(true);
}, []);

return (
<Layout containerWidth={containerWidth} excludeSearch footerBorder>
<SEO
Expand Down Expand Up @@ -286,7 +291,7 @@ const ReleaseNotesListingTemplate = ({ data }) => {
/>
</div>
<FlexContainer flexWrap='wrap' className='rn-popover-trigger-and-tags' >
<ReleaseNotePopoverCategorySelector filters={filters} setFilters={setFilters} setCurrentPage={setCurrentPage} />
<ReleaseNotePopoverCategorySelector filters={filters} setFilters={setFilters} setCurrentPage={setCurrentPage} isDisabled={!isLoaded} />
<FlexContainer mobileFlex='same' spacing='narrow' flexWrap='wrap' >
{
filters && filters.categories.map(item => {
Expand Down Expand Up @@ -315,7 +320,7 @@ const ReleaseNotesListingTemplate = ({ data }) => {
setCurrentPage={setCurrentPage}
totalPagesRef={totalPagesRef}
queryStrings={queryStrings}
updateQueryStrings={updateQueryStrings}
setIsPageLoaded={setIsLoaded}
/>
</Container>
</main>
Expand Down

0 comments on commit 71ee1c4

Please sign in to comment.