Fix unclickable state while opening share link in browser (#6201)
* Fix unclickable state, don't show warning if query present * Leave a note about need for a web test * Fix browser share links by waiting for network connection * Don't worry about engineConnection on home route
This commit is contained in:
@ -612,3 +612,12 @@ profile001 = startProfileAt([-12.34, 12.34], sketch002)
|
||||
const sketch002 = extrude(sketch002, length = ${[5, 5]} + 7)`
|
||||
await expect(page.locator('.cm-content')).toHaveText(result2.regExp)
|
||||
})
|
||||
|
||||
test.fixme(
|
||||
`Opening a share link in the web isn't blocked by the web warning banner`,
|
||||
async () => {
|
||||
// This test is not able to be run right now since we don't have a web-only setup for Playwright.
|
||||
// @franknoirot can implement it when that testing infra is set up. It should be a test to cover the fix from
|
||||
// modeling-app issue #6172.
|
||||
}
|
||||
)
|
||||
|
@ -2,12 +2,16 @@ import { Dialog } from '@headlessui/react'
|
||||
import { useState } from 'react'
|
||||
|
||||
import { ActionButton } from '@src/components/ActionButton'
|
||||
import { CREATE_FILE_URL_PARAM } from '@src/lib/constants'
|
||||
import { useSettings } from '@src/machines/appMachine'
|
||||
import { useSearchParams } from 'react-router-dom'
|
||||
|
||||
const DownloadAppBanner = () => {
|
||||
const [searchParams] = useSearchParams()
|
||||
const settings = useSettings()
|
||||
const [isBannerDismissed, setIsBannerDismissed] = useState(
|
||||
settings.app.dismissWebBanner.current
|
||||
searchParams.has(CREATE_FILE_URL_PARAM) ||
|
||||
settings.app.dismissWebBanner.current
|
||||
)
|
||||
|
||||
return (
|
||||
@ -43,7 +47,7 @@ const DownloadAppBanner = () => {
|
||||
<ActionButton
|
||||
Element="externalLink"
|
||||
to="https://zoo.dev/modeling-app/download"
|
||||
className="group text-warn-10 dark:!text-warn-10 pr-1 border-warn-70 hover:border-warn-80 dark:!border-warn-70 dark:hover:!border-warn-80 bg-warn-70 group-hover:bg-warn-80 dark:bg-warn-70 dark:group-hover:bg-warn-80"
|
||||
className="group !text-warn-10 pr-1 border-warn-70 hover:border-warn-80 dark:!border-warn-70 dark:hover:!border-warn-80 bg-warn-70 group-hover:bg-warn-80 dark:bg-warn-70 dark:group-hover:bg-warn-80"
|
||||
iconEnd={{
|
||||
icon: 'arrowRight',
|
||||
iconClassName: 'text-warn-10 dark:text-warn-10',
|
||||
|
@ -1,11 +1,14 @@
|
||||
import { useEffect } from 'react'
|
||||
import { useSearchParams } from 'react-router-dom'
|
||||
import { useLocation, useSearchParams } from 'react-router-dom'
|
||||
|
||||
import { useNetworkContext } from '@src/hooks/useNetworkContext'
|
||||
import { EngineConnectionStateType } from '@src/lang/std/engineConnection'
|
||||
import { base64ToString } from '@src/lib/base64'
|
||||
import type { ProjectsCommandSchema } from '@src/lib/commandBarConfigs/projectsCommandConfig'
|
||||
import { CREATE_FILE_URL_PARAM, DEFAULT_FILE_NAME } from '@src/lib/constants'
|
||||
import { isDesktop } from '@src/lib/isDesktop'
|
||||
import type { FileLinkParams } from '@src/lib/links'
|
||||
import { PATHS } from '@src/lib/paths'
|
||||
import { useSettings } from '@src/machines/appMachine'
|
||||
|
||||
// For initializing the command arguments, we actually want `method` to be undefined
|
||||
@ -26,13 +29,21 @@ export type CreateFileSchemaMethodOptional = Omit<
|
||||
export function useCreateFileLinkQuery(
|
||||
callback: (args: CreateFileSchemaMethodOptional) => void
|
||||
) {
|
||||
const { immediateState } = useNetworkContext()
|
||||
const { pathname } = useLocation()
|
||||
const [searchParams] = useSearchParams()
|
||||
const settings = useSettings()
|
||||
|
||||
useEffect(() => {
|
||||
const isHome = pathname === PATHS.HOME
|
||||
const createFileParam = searchParams.has(CREATE_FILE_URL_PARAM)
|
||||
|
||||
if (createFileParam) {
|
||||
if (
|
||||
createFileParam &&
|
||||
(immediateState.type ===
|
||||
EngineConnectionStateType.ConnectionEstablished ||
|
||||
isHome)
|
||||
) {
|
||||
const params: FileLinkParams = {
|
||||
code: base64ToString(
|
||||
decodeURIComponent(searchParams.get('code') ?? '')
|
||||
@ -54,5 +65,5 @@ export function useCreateFileLinkQuery(
|
||||
|
||||
callback(argDefaultValues)
|
||||
}
|
||||
}, [searchParams])
|
||||
}, [searchParams, immediateState])
|
||||
}
|
||||
|
Reference in New Issue
Block a user