From c9f83397db829be8da9587fa7796c86b5b7483c3 Mon Sep 17 00:00:00 2001 From: Charles de Dreuille Date: Wed, 17 Jul 2024 15:06:46 +0100 Subject: [PATCH] Frontpage auto fixes --- apps/frontpage/app/addons/sitemap.ts | 8 +++---- apps/frontpage/app/blog/sitemap.ts | 2 +- apps/frontpage/app/community/page.tsx | 4 ++-- apps/frontpage/app/docs-all/sitemap.ts | 6 ++--- apps/frontpage/app/docs/[...slug]/page.tsx | 2 +- apps/frontpage/app/docs/layout.tsx | 8 +++---- apps/frontpage/app/docs/page.tsx | 2 +- apps/frontpage/app/docs/provider.tsx | 2 +- apps/frontpage/app/docs/renderer-cookie.tsx | 2 +- apps/frontpage/app/docs/sitemap.ts | 2 +- apps/frontpage/app/layout.tsx | 2 +- apps/frontpage/app/not-found.tsx | 4 ++-- apps/frontpage/app/page.tsx | 2 +- apps/frontpage/app/recipes/[...name]/page.tsx | 22 ++++++++---------- apps/frontpage/app/recipes/sitemap.ts | 2 +- apps/frontpage/app/releases/[slug]/page.tsx | 2 +- apps/frontpage/app/releases/sitemap.ts | 2 +- apps/frontpage/app/showcase/sitemap.ts | 2 +- apps/frontpage/app/tutorials/sitemap.ts | 2 +- .../frontpage/components/community/events.tsx | 2 +- .../components/community/support.tsx | 2 +- apps/frontpage/components/docs/content.tsx | 4 ++-- .../components/docs/footer/actions.ts | 3 +-- .../components/docs/footer/footer.tsx | 9 ++++---- .../frontpage/components/docs/footer/form.tsx | 23 +++++++------------ apps/frontpage/components/docs/mdx/a.tsx | 2 +- .../docs/mdx/code-snippets/code-snippets.tsx | 10 ++++---- .../mdx/code-snippets/utils/get-filters.ts | 4 ++-- .../utils/transform-vue-tab-title.ts | 2 +- .../docs/mdx/youtube-callout/index.tsx | 2 +- .../components/docs/renderers/index.tsx | 10 ++++---- .../components/docs/sidebar/docs-main-nav.tsx | 2 +- .../components/docs/sidebar/docs-nav.tsx | 6 ++--- apps/frontpage/components/docs/submenu.tsx | 2 +- .../components/docs/table-of-content.tsx | 4 ++-- .../components/docs/toc-section-titles.tsx | 4 ++-- apps/frontpage/components/home/home.tsx | 2 +- apps/frontpage/lib/fetch-addons-query.ts | 4 ++-- apps/frontpage/lib/fetch-external-sitemap.ts | 2 +- .../lib/fetch-recipe-details-data.ts | 9 ++++---- apps/frontpage/lib/fetch-recipes-data.ts | 8 +++---- .../generateRedirects.test.ts | 1 - .../generateRedirects/generateRedirects.ts | 2 +- apps/frontpage/lib/get-all-trees.ts | 6 ++--- apps/frontpage/lib/get-flat-tree.ts | 6 ++--- apps/frontpage/lib/get-page.tsx | 2 +- apps/frontpage/lib/get-release.ts | 1 - 47 files changed, 98 insertions(+), 114 deletions(-) diff --git a/apps/frontpage/app/addons/sitemap.ts b/apps/frontpage/app/addons/sitemap.ts index 11274ed5..8591f551 100644 --- a/apps/frontpage/app/addons/sitemap.ts +++ b/apps/frontpage/app/addons/sitemap.ts @@ -1,6 +1,6 @@ -import { MetadataRoute } from 'next'; -import { fetchAddonsQuery, gql } from '../../lib/fetch-addons-query'; +import { type MetadataRoute } from 'next'; import { validateResponse } from '@repo/utils'; +import { fetchAddonsQuery, gql } from '../../lib/fetch-addons-query'; type AddonValue = string; @@ -16,7 +16,7 @@ export default async function sitemap(): Promise { async function fetchAddonsData() { try { let value: AddonValue[] = []; - async function fetchPartialData(skip: number = 0) { + async function fetchPartialData(skip = 0) { const data = await fetchAddonsQuery( gql` query Addons($skip: Int!) { @@ -65,7 +65,7 @@ export default async function sitemap(): Promise { } = {}) { try { let value: TagValue[] = []; - async function fetchPartialData(skip: number = 0) { + async function fetchPartialData(skip = 0) { const data = await fetchAddonsQuery< TagsData, { isCategory: boolean; skip: number } diff --git a/apps/frontpage/app/blog/sitemap.ts b/apps/frontpage/app/blog/sitemap.ts index b5a068dc..3722aa3e 100644 --- a/apps/frontpage/app/blog/sitemap.ts +++ b/apps/frontpage/app/blog/sitemap.ts @@ -1,4 +1,4 @@ -import { MetadataRoute } from 'next'; +import { type MetadataRoute } from 'next'; import { fetchExternalSitemap } from '../../lib/fetch-external-sitemap'; export default async function sitemap(): Promise { diff --git a/apps/frontpage/app/community/page.tsx b/apps/frontpage/app/community/page.tsx index b7df17b6..3f3179d5 100644 --- a/apps/frontpage/app/community/page.tsx +++ b/apps/frontpage/app/community/page.tsx @@ -30,7 +30,7 @@ export default async function Page() { return (
@@ -54,7 +54,7 @@ export default async function Page() { { @@ -32,7 +32,7 @@ export default async function Layout({ children }: { children: ReactNode }) {
} /> diff --git a/apps/frontpage/app/docs/page.tsx b/apps/frontpage/app/docs/page.tsx index 00c5ac1d..50eec7d3 100644 --- a/apps/frontpage/app/docs/page.tsx +++ b/apps/frontpage/app/docs/page.tsx @@ -1,8 +1,8 @@ import { notFound } from 'next/navigation'; import { globalSearchMetaKeys, globalSearchImportance } from '@repo/ui'; import { latestVersion } from '@repo/utils'; +import { type Metadata } from 'next'; import { getPageData } from '../../lib/get-page'; -import { Metadata } from 'next'; import { Content } from '../../components/docs/content'; export async function generateMetadata(): Promise { diff --git a/apps/frontpage/app/docs/provider.tsx b/apps/frontpage/app/docs/provider.tsx index 024b9ac1..fe3e4da5 100644 --- a/apps/frontpage/app/docs/provider.tsx +++ b/apps/frontpage/app/docs/provider.tsx @@ -4,12 +4,12 @@ import { languages, packageManagers, renderers } from '@repo/utils'; import { getCookie, setCookie } from 'cookies-next'; import type { ReactNode } from 'react'; import { createContext, useContext, useEffect, useState } from 'react'; +import { useSearchParams } from 'next/navigation'; import { cookieLanguageId, cookiePackageManagerId, cookieRenderId, } from '../../constants'; -import { useSearchParams } from 'next/navigation'; export interface DocsContextProps { activeRenderer: null | string; diff --git a/apps/frontpage/app/docs/renderer-cookie.tsx b/apps/frontpage/app/docs/renderer-cookie.tsx index 421fd3dd..719ba3d1 100644 --- a/apps/frontpage/app/docs/renderer-cookie.tsx +++ b/apps/frontpage/app/docs/renderer-cookie.tsx @@ -2,8 +2,8 @@ import { useSearchParams } from 'next/navigation'; import { useEffect } from 'react'; -import { useDocs } from './provider'; import { renderers } from '@repo/utils'; +import { useDocs } from './provider'; export const RendererCookie = () => { const { setRenderer } = useDocs(); diff --git a/apps/frontpage/app/docs/sitemap.ts b/apps/frontpage/app/docs/sitemap.ts index 404894a4..096bbd95 100644 --- a/apps/frontpage/app/docs/sitemap.ts +++ b/apps/frontpage/app/docs/sitemap.ts @@ -1,4 +1,4 @@ -import { MetadataRoute } from 'next'; +import { type MetadataRoute } from 'next'; import { docsVersions } from '@repo/utils'; import { getFlatTree } from '../../lib/get-flat-tree'; import { getAllTrees } from '../../lib/get-all-trees'; diff --git a/apps/frontpage/app/layout.tsx b/apps/frontpage/app/layout.tsx index c99c2fdc..946fe4e9 100644 --- a/apps/frontpage/app/layout.tsx +++ b/apps/frontpage/app/layout.tsx @@ -6,10 +6,10 @@ import { globalSearchImportance, } from '@repo/ui'; import { cn } from '@repo/utils'; -import { Providers } from './providers'; import { SpeedInsights } from '@vercel/speed-insights/next'; import { GoogleAnalytics } from '@next/third-parties/google'; import { Analytics } from '@vercel/analytics/react'; +import { Providers } from './providers'; import '@docsearch/css'; import './globals.css'; diff --git a/apps/frontpage/app/not-found.tsx b/apps/frontpage/app/not-found.tsx index dc51f129..6d2e21bd 100644 --- a/apps/frontpage/app/not-found.tsx +++ b/apps/frontpage/app/not-found.tsx @@ -14,7 +14,7 @@ export default async function NotFound() { return (
@@ -36,7 +36,7 @@ export default async function NotFound() {

diff --git a/apps/frontpage/app/page.tsx b/apps/frontpage/app/page.tsx index ab16c25f..7f31ce16 100644 --- a/apps/frontpage/app/page.tsx +++ b/apps/frontpage/app/page.tsx @@ -14,7 +14,7 @@ export default async function Page() { return (
@@ -61,11 +61,11 @@ export default async function RecipeDetails({ params }: RecipeDetailsProps) { fill="none" > + />
{metadata?.authors?.map((author) => (
  • - {author.gravatarUrl && ( -
    + {author.gravatarUrl ?
    {author.username} -
    - )} +
    : null} {author.username}
  • ))} diff --git a/apps/frontpage/app/recipes/sitemap.ts b/apps/frontpage/app/recipes/sitemap.ts index 97726472..c4261488 100644 --- a/apps/frontpage/app/recipes/sitemap.ts +++ b/apps/frontpage/app/recipes/sitemap.ts @@ -1,4 +1,4 @@ -import { MetadataRoute } from 'next'; +import { type MetadataRoute } from 'next'; import { fetchRecipesData } from '../../lib/fetch-recipes-data'; export default async function sitemap(): Promise { diff --git a/apps/frontpage/app/releases/[slug]/page.tsx b/apps/frontpage/app/releases/[slug]/page.tsx index 79ca2d4b..85f2060f 100644 --- a/apps/frontpage/app/releases/[slug]/page.tsx +++ b/apps/frontpage/app/releases/[slug]/page.tsx @@ -32,7 +32,7 @@ export default async function Page({ params: { slug } }: PageProps) { return ( <>
    diff --git a/apps/frontpage/app/releases/sitemap.ts b/apps/frontpage/app/releases/sitemap.ts index 131f7abc..08eb9f8d 100644 --- a/apps/frontpage/app/releases/sitemap.ts +++ b/apps/frontpage/app/releases/sitemap.ts @@ -1,4 +1,4 @@ -import { MetadataRoute } from 'next'; +import { type MetadataRoute } from 'next'; import { getReleases } from '../../lib/get-releases'; export default async function sitemap(): Promise { diff --git a/apps/frontpage/app/showcase/sitemap.ts b/apps/frontpage/app/showcase/sitemap.ts index 6a299867..b9b2ee2e 100644 --- a/apps/frontpage/app/showcase/sitemap.ts +++ b/apps/frontpage/app/showcase/sitemap.ts @@ -1,4 +1,4 @@ -import { MetadataRoute } from 'next'; +import { type MetadataRoute } from 'next'; import { fetchExternalSitemap } from '../../lib/fetch-external-sitemap'; export default async function sitemap(): Promise { diff --git a/apps/frontpage/app/tutorials/sitemap.ts b/apps/frontpage/app/tutorials/sitemap.ts index c0835a2f..c2a8910f 100644 --- a/apps/frontpage/app/tutorials/sitemap.ts +++ b/apps/frontpage/app/tutorials/sitemap.ts @@ -1,4 +1,4 @@ -import { MetadataRoute } from 'next'; +import { type MetadataRoute } from 'next'; import { fetchExternalSitemap } from '../../lib/fetch-external-sitemap'; export default async function sitemap(): Promise { diff --git a/apps/frontpage/components/community/events.tsx b/apps/frontpage/components/community/events.tsx index fc8f8168..485ea102 100644 --- a/apps/frontpage/components/community/events.tsx +++ b/apps/frontpage/components/community/events.tsx @@ -9,8 +9,8 @@ import type { FC } from 'react'; import { useMemo } from 'react'; import { zonedTimeToUtc, format } from 'date-fns-tz'; import { isPast } from 'date-fns'; -import { Section } from './section'; import { Youtube } from '../logos/youtube'; +import { Section } from './section'; const rezoneDate = (date: Date) => zonedTimeToUtc(date, 'America/Los_Angeles'); diff --git a/apps/frontpage/components/community/support.tsx b/apps/frontpage/components/community/support.tsx index 7016d137..03719557 100644 --- a/apps/frontpage/components/community/support.tsx +++ b/apps/frontpage/components/community/support.tsx @@ -22,7 +22,7 @@ export const Support: FC = () => {

    diff --git a/apps/frontpage/components/docs/content.tsx b/apps/frontpage/components/docs/content.tsx index 09cb9918..6ce86376 100644 --- a/apps/frontpage/components/docs/content.tsx +++ b/apps/frontpage/components/docs/content.tsx @@ -1,9 +1,9 @@ import { cn } from '@repo/utils'; -import { PageDataProps } from '../../lib/get-page'; +import { type FC } from 'react'; +import { type PageDataProps } from '../../lib/get-page'; import { Renderers } from './renderers'; import { DocsFooter } from './footer/footer'; import { TableOfContent } from './table-of-content'; -import { FC } from 'react'; export const Content: FC<{ page: PageDataProps }> = ({ page }) => { return ( diff --git a/apps/frontpage/components/docs/footer/actions.ts b/apps/frontpage/components/docs/footer/actions.ts index 9e4b7f6b..9a305873 100644 --- a/apps/frontpage/components/docs/footer/actions.ts +++ b/apps/frontpage/components/docs/footer/actions.ts @@ -4,7 +4,6 @@ import dedent from 'dedent'; import { headers } from 'next/headers'; import fetch from 'node-fetch'; import { z } from 'zod'; - import type { TreeProps } from '@repo/utils'; import { docsVersions } from '@repo/utils'; import { getAllTrees } from '../../../lib/get-all-trees'; @@ -184,7 +183,7 @@ async function getDiscussion(title: string) { pageInfo: { hasNextPage, endCursor }, }, }, - // eslint-disable-next-line no-await-in-loop -- This is node; we can deal with it + } = await queryGitHub<{ repository: { discussions: { diff --git a/apps/frontpage/components/docs/footer/footer.tsx b/apps/frontpage/components/docs/footer/footer.tsx index af980bb7..41ff56bd 100644 --- a/apps/frontpage/components/docs/footer/footer.tsx +++ b/apps/frontpage/components/docs/footer/footer.tsx @@ -3,7 +3,6 @@ import { useEffect, useState } from 'react'; import { AnimatePresence, motion } from 'framer-motion'; import { usePathname } from 'next/navigation'; - import { cn } from '@repo/utils'; import { Form } from './form'; @@ -55,7 +54,7 @@ export const DocsFooter = ({ isIndexPage }: FooterProps) => { 'h-8 w-8 rounded-full hover:bg-blue-100', reaction === 'up' && 'bg-blue-100', )} - onClick={() => selectReaction('up')} + onClick={() => { selectReaction('up'); }} > 👍 @@ -64,20 +63,20 @@ export const DocsFooter = ({ isIndexPage }: FooterProps) => { 'h-8 w-8 rounded-full hover:bg-blue-100', reaction === 'down' && 'bg-blue-100', )} - onClick={() => selectReaction('down')} + onClick={() => { selectReaction('down'); }} > 👎 - {reaction &&
    } + {reaction ? : null} ✍️ Edit on Github diff --git a/apps/frontpage/components/docs/footer/form.tsx b/apps/frontpage/components/docs/footer/form.tsx index 611447eb..b39771f8 100644 --- a/apps/frontpage/components/docs/footer/form.tsx +++ b/apps/frontpage/components/docs/footer/form.tsx @@ -1,13 +1,12 @@ -import { Dispatch, SetStateAction, useEffect, useState } from 'react'; +import { type Dispatch, type SetStateAction, useEffect, useState } from 'react'; import { useFormState, useFormStatus } from 'react-dom'; import { motion } from 'framer-motion'; import { useParams, usePathname } from 'next/navigation'; - import { useDocs } from '../../../app/docs/provider'; import { getVersion } from '../../../lib/get-version'; import { Button } from '../../ui/button'; -import { sendFeedback, FeedbackState } from './actions'; -import { ReactionsProps } from './footer'; +import { sendFeedback, type FeedbackState } from './actions'; +import { type ReactionsProps } from './footer'; const initialState: FeedbackState = {}; @@ -66,15 +65,9 @@ export const Form = ({ <> - {activeRenderer && ( - - )} - {activeLanguage && ( - - )} - {activeVersion && ( - - )} + {activeRenderer ? : null} + {activeLanguage ? : null} + {activeVersion ? : null} @@ -104,11 +97,11 @@ export const Form = ({ className="flex flex-1 flex-col items-center justify-center gap-1 bg-white text-sm" >
    Your feedback has been received!
    - {!!state.url ? ( + {state.url ? ( View on Github diff --git a/apps/frontpage/components/docs/mdx/a.tsx b/apps/frontpage/components/docs/mdx/a.tsx index 26245a8a..33733b36 100644 --- a/apps/frontpage/components/docs/mdx/a.tsx +++ b/apps/frontpage/components/docs/mdx/a.tsx @@ -1,4 +1,4 @@ -import { DocsVersion, latestVersion } from '@repo/utils'; +import { type DocsVersion, latestVersion } from '@repo/utils'; import Link from 'next/link'; import type { FC, ReactNode } from 'react'; diff --git a/apps/frontpage/components/docs/mdx/code-snippets/code-snippets.tsx b/apps/frontpage/components/docs/mdx/code-snippets/code-snippets.tsx index 69c8785c..4d735b5c 100644 --- a/apps/frontpage/components/docs/mdx/code-snippets/code-snippets.tsx +++ b/apps/frontpage/components/docs/mdx/code-snippets/code-snippets.tsx @@ -3,6 +3,7 @@ import { useEffect, useState, type FC } from 'react'; import { type CodeSnippetsProps } from '@repo/utils'; import { CodeSnippetsWrapper } from '@repo/ui'; +import { InfoIcon } from '@storybook/icons'; import { useDocs } from '../../../../app/docs/provider'; import { getFilters } from './utils/get-filters'; import { @@ -10,9 +11,8 @@ import { getActiveContent, } from './utils/get-active-content'; import { Dropdown } from './dropdown'; -import { InfoIcon } from '@storybook/icons'; import { transformVueTabTitle } from './utils/transform-vue-tab-title'; -import { Tab, Tabs } from './tabs'; +import { type Tab, Tabs } from './tabs'; interface CodeSnippetsClientProps { content: CodeSnippetsProps[] | null; @@ -151,12 +151,10 @@ export const CodeSnippetsClient: FC = ({ > {activeContent?.content ? ( <> - {error && ( -
    + {error ?
    {error} -
    - )} +
    : null}
    { const listOfLanguages = [ ...new Set(filterByRenderer.map((obj) => obj.language)), - ].filter((r) => r !== null && r !== undefined) as string[]; + ].filter((r) => r !== null && r !== undefined); const languagesWithData = listOfLanguages .map((obj) => languages.find((r) => r.id === obj)) @@ -32,7 +32,7 @@ export const getFilters = ({ content, activeRenderer }: GetFiltersProps) => { // Removing duplicates, null and undefined values const listOfPm = [...new Set(transformPackageManager)].filter( (r) => r !== null && r !== undefined, - ) as string[]; + ); // Add the right data for each package manager const PmWithData = listOfPm.map((obj) => diff --git a/apps/frontpage/components/docs/mdx/code-snippets/utils/transform-vue-tab-title.ts b/apps/frontpage/components/docs/mdx/code-snippets/utils/transform-vue-tab-title.ts index 5ba06ccf..83bf5c63 100644 --- a/apps/frontpage/components/docs/mdx/code-snippets/utils/transform-vue-tab-title.ts +++ b/apps/frontpage/components/docs/mdx/code-snippets/utils/transform-vue-tab-title.ts @@ -1,4 +1,4 @@ -import { CodeSnippetsProps } from '@repo/utils'; +import { type CodeSnippetsProps } from '@repo/utils'; export function transformVueTabTitle( tabTitle: string, diff --git a/apps/frontpage/components/docs/mdx/youtube-callout/index.tsx b/apps/frontpage/components/docs/mdx/youtube-callout/index.tsx index 18fdc8d8..3123e3b9 100644 --- a/apps/frontpage/components/docs/mdx/youtube-callout/index.tsx +++ b/apps/frontpage/components/docs/mdx/youtube-callout/index.tsx @@ -2,8 +2,8 @@ import { ChevronSmallDownIcon, YoutubeIcon } from '@storybook/icons'; import LiteYouTubeEmbed from 'react-lite-youtube-embed'; -import styles from './styles.module.css'; import { Youtube } from '../../../logos/youtube'; +import styles from './styles.module.css'; interface YouTubeCalloutProps { id: string; diff --git a/apps/frontpage/components/docs/renderers/index.tsx b/apps/frontpage/components/docs/renderers/index.tsx index cba7d6cf..ae64dfb7 100644 --- a/apps/frontpage/components/docs/renderers/index.tsx +++ b/apps/frontpage/components/docs/renderers/index.tsx @@ -1,21 +1,21 @@ 'use client'; -import { FC, useEffect, useState } from 'react'; -import { useMediaQuery } from '../../../hooks/use-media-query'; +import { type FC, useEffect, useState } from 'react'; import { renderers } from '@repo/utils'; -import { Button } from './button'; -import { useDocs } from '../../../app/docs/provider'; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, } from '@repo/ui'; +import { useMediaQuery } from '../../../hooks/use-media-query'; +import { useDocs } from '../../../app/docs/provider'; +import { Button } from './button'; type Renderer = typeof renderers[number]; export const Renderers: FC = () => { - let { activeRenderer, setRenderer } = useDocs(); + const { activeRenderer, setRenderer } = useDocs(); const [isMobile] = useMediaQuery('(max-width: 480px)'); const [firstList, setFirstList] = useState(renderers.slice(0, 3)); const [lastRenderer, setLastRenderer] = useState(renderers[3]); diff --git a/apps/frontpage/components/docs/sidebar/docs-main-nav.tsx b/apps/frontpage/components/docs/sidebar/docs-main-nav.tsx index e69603ad..5e29d8ae 100644 --- a/apps/frontpage/components/docs/sidebar/docs-main-nav.tsx +++ b/apps/frontpage/components/docs/sidebar/docs-main-nav.tsx @@ -4,6 +4,7 @@ import Link from 'next/link'; import type { FC, ReactNode } from 'react'; import { cn, latestVersion } from '@repo/utils'; import { usePathname, useSelectedLayoutSegment } from 'next/navigation'; +import { getVersion } from '../../../lib/get-version'; import { APIIcon, ChangelogIcon, @@ -11,7 +12,6 @@ import { IntegrationsIcon, TutorialsIcon, } from './icons'; -import { getVersion } from '../../../lib/get-version'; export const DocsMainNav = () => { const pathname = usePathname(); diff --git a/apps/frontpage/components/docs/sidebar/docs-nav.tsx b/apps/frontpage/components/docs/sidebar/docs-nav.tsx index 4daecfc8..d0e18106 100644 --- a/apps/frontpage/components/docs/sidebar/docs-nav.tsx +++ b/apps/frontpage/components/docs/sidebar/docs-nav.tsx @@ -6,9 +6,9 @@ import { useEffect, useState, type FC } from 'react'; import { ChevronSmallRightIcon } from '@storybook/icons'; import type { TreeProps } from '@repo/utils'; import { cn, docsVersions } from '@repo/utils'; -import { VersionSelector } from './version-selector'; import { usePathname, useSelectedLayoutSegment } from 'next/navigation'; import { getVersion } from '../../../lib/get-version'; +import { VersionSelector } from './version-selector'; type Tree = TreeProps[] | null | undefined; @@ -102,7 +102,7 @@ const Level1 = ({ lvl1 }: { lvl1: TreeProps }) => { const Level2 = ({ lvl2 }: { lvl2: TreeProps }) => { const pathname = usePathname(); - const isDraft = lvl2.draft === true ? true : false; + const isDraft = lvl2.draft === true; const hasChildren = lvl2.children && lvl2.children.length > 0; const slug = lvl2.slug; @@ -149,7 +149,7 @@ const Level2 = ({ lvl2 }: { lvl2: TreeProps }) => { }; const Level3 = ({ lvl3 }: { lvl3: TreeProps }) => { - const isDraft = lvl3.draft === true ? true : false; + const isDraft = lvl3.draft === true; const slug = lvl3.slug; const pathname = usePathname(); diff --git a/apps/frontpage/components/docs/submenu.tsx b/apps/frontpage/components/docs/submenu.tsx index 3a164782..5e580ba9 100644 --- a/apps/frontpage/components/docs/submenu.tsx +++ b/apps/frontpage/components/docs/submenu.tsx @@ -7,9 +7,9 @@ import * as DropdownMenu from '@radix-ui/react-dropdown-menu'; import * as ScrollArea from '@radix-ui/react-scroll-area'; import type { DocsVersion, TreeProps } from '@repo/utils'; import { cn } from '@repo/utils'; +import { getVersion } from '../../lib/get-version'; import { NavDocs } from './sidebar/docs-nav'; import { DocsMainNav } from './sidebar/docs-main-nav'; -import { getVersion } from '../../lib/get-version'; type Tree = TreeProps[] | null | undefined; diff --git a/apps/frontpage/components/docs/table-of-content.tsx b/apps/frontpage/components/docs/table-of-content.tsx index fe98d56c..3ed9be79 100644 --- a/apps/frontpage/components/docs/table-of-content.tsx +++ b/apps/frontpage/components/docs/table-of-content.tsx @@ -6,9 +6,9 @@ import { inView } from 'framer-motion'; import type { Dispatch, FC, SetStateAction } from 'react'; import { useEffect, useState } from 'react'; import { useScrollDirection } from 'react-use-scroll-direction'; +import * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area'; import { ScrollBar } from '../ui/scroll-area'; import { useDocs } from '../../app/docs/provider'; -import * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area'; interface Heading { id: string; @@ -30,7 +30,7 @@ export const TableOfContent: FC = () => { useEffect(() => { const selectors = document.querySelectorAll( 'h2, h3, h4', - ) as NodeListOf; + ); const elements = Array.from(selectors).map((elem) => ({ id: elem.id, diff --git a/apps/frontpage/components/docs/toc-section-titles.tsx b/apps/frontpage/components/docs/toc-section-titles.tsx index 20de49de..1b0c1285 100644 --- a/apps/frontpage/components/docs/toc-section-titles.tsx +++ b/apps/frontpage/components/docs/toc-section-titles.tsx @@ -1,6 +1,6 @@ 'use client'; -import { TreeProps, getVersion, latestVersion } from '@repo/utils'; +import { type TreeProps, getVersion, latestVersion } from '@repo/utils'; import { useSelectedLayoutSegment } from 'next/navigation'; export function TOCSectionTitles({ @@ -20,7 +20,7 @@ export function TOCSectionTitles({ function buildTitle(items: TreeProps[], pathPartIndex: number) { const item = items.find( (item) => - item.name.replace('.mdx', '') === (slug as string[])[pathPartIndex], + item.name.replace('.mdx', '') === (slug)[pathPartIndex], ); if (item) { title.push(item.sidebar?.title || item.title); diff --git a/apps/frontpage/components/home/home.tsx b/apps/frontpage/components/home/home.tsx index 710c8277..17f7409d 100644 --- a/apps/frontpage/components/home/home.tsx +++ b/apps/frontpage/components/home/home.tsx @@ -64,7 +64,7 @@ export function Home({
    diff --git a/apps/frontpage/lib/fetch-addons-query.ts b/apps/frontpage/lib/fetch-addons-query.ts index 920af2e3..b85bb7de 100644 --- a/apps/frontpage/lib/fetch-addons-query.ts +++ b/apps/frontpage/lib/fetch-addons-query.ts @@ -1,4 +1,4 @@ -/* eslint-disable @typescript-eslint/explicit-function-return-type -- TODO Fix this */ + import { GraphQLClient } from 'graphql-request'; @@ -13,7 +13,7 @@ export async function fetchAddonsQuery< V extends Record = Record, >(query: string, { variables }: { variables?: V } = {}) { async function main() { - // eslint-disable-next-line no-return-await -- TODO Fix this + return await client.request(query, variables); } diff --git a/apps/frontpage/lib/fetch-external-sitemap.ts b/apps/frontpage/lib/fetch-external-sitemap.ts index 6e3e0736..6dab7496 100644 --- a/apps/frontpage/lib/fetch-external-sitemap.ts +++ b/apps/frontpage/lib/fetch-external-sitemap.ts @@ -1,4 +1,4 @@ -import Sitemapper, { SitemapperErrorData } from 'sitemapper'; +import Sitemapper, { type SitemapperErrorData } from 'sitemapper'; interface ExtendedSitemapperErrorData extends SitemapperErrorData { message: string; diff --git a/apps/frontpage/lib/fetch-recipe-details-data.ts b/apps/frontpage/lib/fetch-recipe-details-data.ts index ac821794..17b6cf7d 100644 --- a/apps/frontpage/lib/fetch-recipe-details-data.ts +++ b/apps/frontpage/lib/fetch-recipe-details-data.ts @@ -1,9 +1,8 @@ -import { buildTagLinks } from './build-tag-links'; import { validateResponse, addonFragment, recipeFragment } from '@repo/utils'; -import { fetchAddonsQuery, gql } from '../lib/fetch-addons-query'; +import { fetchAddonsQuery, gql } from "./fetch-addons-query"; +import { buildTagLinks } from './build-tag-links'; -interface RecipeValue - extends Pick< +type RecipeValue = Pick< Recipe, | 'accentColor' | 'addons' @@ -16,7 +15,7 @@ interface RecipeValue | 'tags' | 'updatedAt' | 'weeklyViews' - > {} + > interface RecipeData { recipe: RecipeValue; } diff --git a/apps/frontpage/lib/fetch-recipes-data.ts b/apps/frontpage/lib/fetch-recipes-data.ts index 4938ba4c..25d96df6 100644 --- a/apps/frontpage/lib/fetch-recipes-data.ts +++ b/apps/frontpage/lib/fetch-recipes-data.ts @@ -1,16 +1,16 @@ import { validateResponse } from '@repo/utils'; -import { fetchAddonsQuery, gql } from '../lib/fetch-addons-query'; +import { fetchAddonsQuery, gql } from "./fetch-addons-query"; type RecipesValue = Recipe['name']; -type RecipesData = { +interface RecipesData { recipes: Pick[]; -}; +} export async function fetchRecipesData() { let value: RecipesValue[] = []; try { - async function fetchPartialData(skip: number = 0) { + async function fetchPartialData(skip = 0) { const data = await fetchAddonsQuery( gql` query RecipeNames($skip: Int!) { diff --git a/apps/frontpage/lib/generateRedirects/generateRedirects.test.ts b/apps/frontpage/lib/generateRedirects/generateRedirects.test.ts index 3145c760..72fd6528 100644 --- a/apps/frontpage/lib/generateRedirects/generateRedirects.test.ts +++ b/apps/frontpage/lib/generateRedirects/generateRedirects.test.ts @@ -1,5 +1,4 @@ import { expect, test } from 'vitest' - import { generateSequence, parseRawRedirects, generateRedirects } from './generateRedirects'; const inputString = ` diff --git a/apps/frontpage/lib/generateRedirects/generateRedirects.ts b/apps/frontpage/lib/generateRedirects/generateRedirects.ts index 936fc4ee..56144f14 100644 --- a/apps/frontpage/lib/generateRedirects/generateRedirects.ts +++ b/apps/frontpage/lib/generateRedirects/generateRedirects.ts @@ -25,7 +25,7 @@ type Lines = [string, string, string][]; export function parseRawRedirects(rawRedirects: string) { const lines = rawRedirects.split('\n'); - let parsed: Lines = []; + const parsed: Lines = []; lines.forEach((line) => { if (!line.startsWith('#') && line.trim() !== '') { diff --git a/apps/frontpage/lib/get-all-trees.ts b/apps/frontpage/lib/get-all-trees.ts index a40049fe..bec2e640 100644 --- a/apps/frontpage/lib/get-all-trees.ts +++ b/apps/frontpage/lib/get-all-trees.ts @@ -1,11 +1,11 @@ import { - RawTreeProps, - TreeProps, + type RawTreeProps, + type TreeProps, latestVersion, docsVersions, } from '@repo/utils'; import { getDocsTreeFromPath } from './get-docs-tree-from-path'; -import { FlatTreeNode, getFlatTree } from './get-flat-tree'; +import { type FlatTreeNode, getFlatTree } from './get-flat-tree'; const getSlug = (pathSegment: string) => { // We first split the pathSegment into an array diff --git a/apps/frontpage/lib/get-flat-tree.ts b/apps/frontpage/lib/get-flat-tree.ts index 21086557..73afc9d9 100644 --- a/apps/frontpage/lib/get-flat-tree.ts +++ b/apps/frontpage/lib/get-flat-tree.ts @@ -1,4 +1,4 @@ -import { DocsVersion, TreeProps } from '@repo/utils'; +import { type DocsVersion, type TreeProps } from '@repo/utils'; export interface FlatTreeNode { slug: string; @@ -28,7 +28,7 @@ export const getFlatTree = ({ type: node.type, draft: node.draft || false, canonical: node.canonical, - level: level, + level, }); if (node.children) { flatTree = flatTree.concat( @@ -48,7 +48,7 @@ export const getFlatTree = ({ if (filterSecondLevelDirectories) { flatTree = flatTree.filter((node) => - node.type === 'directory' ? (node.level === 2 ? false : true) : true, + node.type === 'directory' ? (node.level !== 2) : true, ); } diff --git a/apps/frontpage/lib/get-page.tsx b/apps/frontpage/lib/get-page.tsx index e164aeed..1e7d04d1 100644 --- a/apps/frontpage/lib/get-page.tsx +++ b/apps/frontpage/lib/get-page.tsx @@ -2,6 +2,7 @@ import fs from 'node:fs'; import { compileMDX } from 'next-mdx-remote/rsc'; import type { DocsVersion, RawTreeProps } from '@repo/utils'; import { mdxComponents, MDXRemoteOptions } from '@repo/ui'; +import { type ReactElement } from 'react'; import { A, CodeSnippets, @@ -15,7 +16,6 @@ import { YouTubeCallout, } from '../components/docs/mdx'; import { getDocsTreeFromPath } from './get-docs-tree-from-path'; -import { ReactElement } from 'react'; export interface PageDataProps { title?: string; diff --git a/apps/frontpage/lib/get-release.ts b/apps/frontpage/lib/get-release.ts index c33b1df5..4bf98f5a 100644 --- a/apps/frontpage/lib/get-release.ts +++ b/apps/frontpage/lib/get-release.ts @@ -1,6 +1,5 @@ import fs from 'node:fs'; import { compileMDX } from 'next-mdx-remote/rsc'; - import { mdxComponents } from '@repo/ui'; export async function getRelease(version: string) {