Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
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
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import type { Dispatch, SetStateAction } from 'react'
import type { OverlayState } from '../../../../../shared'

import { useState, useEffect, useRef } from 'react'
Expand All @@ -19,7 +20,7 @@ export function DevToolsIndicator({
}: {
state: OverlayState
readyErrorsLength: number
setIsErrorOverlayOpen: (value: boolean) => void
setIsErrorOverlayOpen: Dispatch<SetStateAction<boolean>>
}) {
const [isDevToolsIndicatorOpen, setIsDevToolsIndicatorOpen] = useState(true)
// Register `(cmd|ctrl) + .` to show/hide the error indicator.
Expand All @@ -36,14 +37,12 @@ export function DevToolsIndicator({
isDevToolsIndicatorOpen && (
<DevToolsPopover
semver={state.versionInfo.installed}
onIssuesClick={() => {
setIsErrorOverlayOpen(true)
}}
issueCount={readyErrorsLength}
isStaticRoute={state.staticIndicator}
hide={() => {
setIsDevToolsIndicatorOpen(false)
}}
setIsErrorOverlayOpen={setIsErrorOverlayOpen}
isTurbopack={!!process.env.TURBOPACK}
/>
)
Expand All @@ -54,19 +53,19 @@ const ANIMATE_OUT_DURATION_MS = 200
const ANIMATE_OUT_TIMING_FUNCTION = 'cubic-bezier(0.175, 0.885, 0.32, 1.1)'

const DevToolsPopover = ({
onIssuesClick,
issueCount,
isStaticRoute,
hide,
semver,
isTurbopack,
hide,
setIsErrorOverlayOpen,
}: {
onIssuesClick: () => void
issueCount: number
isStaticRoute: boolean
hide: () => void
semver: string | undefined
isTurbopack: boolean
hide: () => void
setIsErrorOverlayOpen: Dispatch<SetStateAction<boolean>>
}) => {
const popoverRef = useRef<HTMLDivElement>(null)
const buttonRef = useRef<HTMLDivElement>(null)
Expand Down Expand Up @@ -117,6 +116,13 @@ const DevToolsPopover = ({
}, [])

const togglePopover = () => setIsPopoverOpen((prev) => !prev)
const onIssuesClick = () =>
issueCount > 0 ? setIsErrorOverlayOpen(true) : null

const onLogoClick = () => {
togglePopover()
onIssuesClick()
}

return (
<Toast
Expand All @@ -129,7 +135,7 @@ const DevToolsPopover = ({
<NextLogo
key={issueCount}
issueCount={issueCount}
onClick={togglePopover}
onLogoClick={onLogoClick}
onIssuesClick={onIssuesClick}
isDevBuilding={useIsDevBuilding()}
isDevRendering={useIsDevRendering()}
Expand Down Expand Up @@ -174,7 +180,7 @@ const DevToolsPopover = ({
<IndicatorRow
label="Issues"
value={<IssueCount count={issueCount} />}
onClick={issueCount > 0 ? onIssuesClick : undefined}
onClick={onIssuesClick}
/>
</div>
</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,19 @@ import { noop as css } from '../../../../../../internal/helpers/noop-template'

interface Props extends React.ComponentProps<'button'> {
issueCount: number
onClick: () => void
isDevBuilding: boolean
isDevRendering: boolean
onLogoClick: () => void
onIssuesClick: () => void
}

const SIZE = 36

export const NextLogo = ({
issueCount,
onClick,
isDevBuilding,
isDevRendering,
onLogoClick,
onIssuesClick,
...props
}: Props) => {
Expand Down Expand Up @@ -223,7 +223,7 @@ export const NextLogo = ({
>
<div ref={ref}>
{/* Children */}
<button data-next-mark onClick={onClick} {...props}>
<button data-next-mark onClick={onLogoClick} {...props}>
<NextMark isLoading={isLoading} />
</button>
{isErrorExpanded && (
Expand Down