Preload desktop subicons

This commit is contained in:
Dustin Brett 2022-09-11 21:01:27 -07:00
parent 40a1168ba1
commit 55e82593e7
2 changed files with 14 additions and 4 deletions

View File

@ -81,7 +81,8 @@ const Metadata: FC = () => {
<meta content={description} name="description" />
{desktopIcons.map((icon) => {
const isStaticIcon =
!icon.startsWith(ICON_PATH) && !icon.startsWith(USER_ICON_PATH);
(!icon.startsWith(ICON_PATH) || icon.includes("/16x16/")) &&
!icon.startsWith(USER_ICON_PATH);
return (
<link

View File

@ -10,16 +10,22 @@ const ICON_PATH = "/System/Icons";
const SHORTCUT_ICON = `${ICON_PATH}/shortcut.webp`;
const NEW_FOLDER_ICON = `${ICON_PATH}/new_folder.webp`;
const getPublicDirectoryIcons = (directory) => {
const getPublicDirectoryIcons = (directory, includeSubIcons = false) => {
const baseDirectory = join("./public", directory);
return readdirSync(baseDirectory).reduce((icons, file) => {
if (extname(file) === ".url") {
const {
InternetShortcut: { IconFile: icon = "" },
InternetShortcut: { BaseURL: pid = "", IconFile: icon = "" },
} = parse(readFileSync(join(baseDirectory, file)).toString());
if (icon) icons.push(icon);
if (includeSubIcons) {
if (pid === "VideoPlayer") {
icons.push("/System/Icons/16x16/vlc.webp");
}
}
}
return icons;
@ -28,7 +34,10 @@ const getPublicDirectoryIcons = (directory) => {
writeFileSync(
"./public/.index/desktopIcons.json",
JSON.stringify([SHORTCUT_ICON, ...getPublicDirectoryIcons(DESKTOP_PATH)])
JSON.stringify([
SHORTCUT_ICON,
...getPublicDirectoryIcons(DESKTOP_PATH, true),
])
);
writeFileSync(