[web] Fetch favicons from CDN (#28419)

* Simplify paths in `buildImgPath`

* Move favicons from `public` to `public/img/favicons`

* Create links to favicons in `public` (`ln -s img/favicons/* .`)

* Import favicons dynamically in use-status-favicon.ts

* Update pug files with cdn favicon paths

* Update test

* Revert change in layout-no-js.pug

* Fetch web.sitemanifest from CDN

* Revert favicon move

* Fix favicon paths (use `buildBaseAssetPath`)

* Fixup web.sitemanifest path

* Format

* Update `buildImgPath` mock to be more realistic

* Revert web.sitemanifest link to local origin

* Revert "Revert web.sitemanifest link to local origin"

This reverts commit aa13431b743b55c2f536c33e736f657e1c0db598.

GitOrigin-RevId: fe278fec0f1eaae16de9fabc2b13da3e7a316463
This commit is contained in:
Antoine Clausse
2025-09-16 08:05:03 +00:00
committed by Copybot
parent 723954ccc2
commit c6905fc94d
3 changed files with 32 additions and 16 deletions
@@ -1,15 +1,16 @@
import { useDetachCompileContext as useCompileContext } from '@/shared/context/detach-compile-context'
import { useEffect, useState } from 'react'
import usePreviousValue from '@/shared/hooks/use-previous-value'
import getMeta from '@/utils/meta'
const RESET_AFTER_MS = 5_000
const COMPILE_ICONS = {
ERROR: '/favicon-error.svg',
COMPILING: '/favicon-compiling.svg',
COMPILED: '/favicon-compiled.svg',
UNCOMPILED: '/favicon.svg',
}
ERROR: 'favicon-error.svg',
COMPILING: 'favicon-compiling.svg',
COMPILED: 'favicon-compiled.svg',
UNCOMPILED: 'favicon.svg',
} as const
type CompileStatus = keyof typeof COMPILE_ICONS
@@ -34,7 +35,7 @@ const updateFavicon = (status: CompileStatus = 'UNCOMPILED') => {
removeFavicon()
const linkElement = document.createElement('link')
linkElement.rel = 'icon'
linkElement.href = COMPILE_ICONS[status]
linkElement.href = getMeta('ol-baseAssetPath') + COMPILE_ICONS[status]
linkElement.type = 'image/svg+xml'
linkElement.setAttribute('data-compile-status', 'true')
document.head.appendChild(linkElement)