configuration/icons/home.icons.ts

configuration/icons/home.icons.ts is a file in Bane's Lab Site. 55 lines of code and 9 definitions.

import {
    ANATOMY_ACCENT,
    ARCHITECTURE_ACCENT,
    FAQ_ACCENT,
    GRAMMAR_ACCENT,
    METHODOLOGY_ACCENT,
    ONTOLOGY_ACCENT,
} from "#configuration/constants/page.constants";
import {
    ANATOMY_ICON,
    ARCHITECTURE_ICON,
    FAQ_ICON,
    GRAMMAR_ICON,
    METHODOLOGY_ICON,
    ONTOLOGY_ICON,
} from "#configuration/icons/page.icons";
import {
    ANATOMY_PAGE,
    ARCHITECTURE_PAGE,
    FAQ_PAGE,
    GRAMMAR_PAGE,
    METHODOLOGY_PAGE,
    ONTOLOGY_PAGE,
} from "#core/ids/page.ids";
import type { HomeRowLink } from "#types/home.types";
import { UNLINKED_PAGE } from "#configuration/strings/report.strings";

export const GRAMMAR_CARD_LINK: HomeRowLink = { accent: GRAMMAR_ACCENT, icon: GRAMMAR_ICON, page: GRAMMAR_PAGE };

export const METHODOLOGY_CARD_LINK: HomeRowLink = {
    accent: METHODOLOGY_ACCENT,
    icon: METHODOLOGY_ICON,
    page: METHODOLOGY_PAGE,
};

export const ARCHITECTURE_CARD_LINK: HomeRowLink = {
    accent: ARCHITECTURE_ACCENT,
    icon: ARCHITECTURE_ICON,
    page: ARCHITECTURE_PAGE,
};

export const ONTOLOGY_CARD_LINK: HomeRowLink = { accent: ONTOLOGY_ACCENT, icon: ONTOLOGY_ICON, page: ONTOLOGY_PAGE };

export const ANATOMY_CARD_LINK: HomeRowLink = { accent: ANATOMY_ACCENT, icon: ANATOMY_ICON, page: ANATOMY_PAGE };

export const FAQ_CARD_LINK: HomeRowLink = { accent: FAQ_ACCENT, icon: FAQ_ICON, page: FAQ_PAGE };

export const HOME_ROW_LINKS: readonly HomeRowLink[] = [
    GRAMMAR_CARD_LINK,
    METHODOLOGY_CARD_LINK,
    ARCHITECTURE_CARD_LINK,
    ONTOLOGY_CARD_LINK,
    ANATOMY_CARD_LINK,
    FAQ_CARD_LINK,
];

export const linkFor = function linkFor(page: string): HomeRowLink {
    const link = HOME_ROW_LINKS.find((candidate) => candidate.page === page);
    if (link === undefined) {
        throw new Error(UNLINKED_PAGE + page);
    }
    return link;
};