feat: feed feature, typescript, remove google, fix errs & warns
publish / Build-and-publish (push) Successful in 13m32s

This commit is contained in:
Unknown
2026-07-17 22:22:29 +01:00
parent 2c42ecae5f
commit 8a10d127c1
55 changed files with 1887 additions and 587 deletions
+25
View File
@@ -0,0 +1,25 @@
declare module '*.png'
declare module '*.jpg'
declare module '*.jpeg'
declare module '*.svg'
declare module '*.gif'
declare module '*.webp'
declare module '*.ico'
declare module '*.css'
declare module '*.scss'
declare module 'react-use-flexsearch' {
export function useFlexSearch(
query: string | null,
index: string,
store: Record<string, unknown>
): Array<Record<string, unknown>>
}
declare module '@browniebroke/gatsby-image-gallery' {
import * as React from 'react'
const Gallery: React.FC<
Record<string, unknown> & { images: Array<Record<string, unknown>> }
>
export default Gallery
}
+10
View File
@@ -0,0 +1,10 @@
import 'react'
declare module 'react' {
interface InputHTMLAttributes<T> extends HTMLAttributes<T> {
rules?: string
}
interface TextareaHTMLAttributes<T> extends HTMLAttributes<T> {
rules?: string
}
}
+1
View File
@@ -1 +1,2 @@
export * from './nostr'
export * from './site'
+139
View File
@@ -0,0 +1,139 @@
import { IGatsbyImageData } from 'gatsby-plugin-image'
import * as React from 'react'
import type { IconType } from 'react-icons'
export type PageType = 'index' | 'year' | 'category' | 'search'
export interface RecentPost {
slug: string
title: string
}
export interface TagCount {
name: string
totalCount: number
}
export interface PageContext {
page: PageType
archives: Record<string, number>
recentPosts: RecentPost[]
tags: TagCount[]
filter?: unknown
limit?: number
skip?: number
numPages?: number
currentPage?: number
year?: string
tag?: string
}
export interface PostFrontmatter {
title: string
date: string
author?: string
authorLink?: string
description?: string
tags?: string[]
heading?: string
desc?: string
previewImg?: {
childImageSharp?: {
gatsbyImageData: IGatsbyImageData
}
}
}
export interface PostNode {
id?: string
html: string
fields: {
slug: string
}
frontmatter: PostFrontmatter
}
export interface LayoutProps {
location: Location
heroSection?: boolean
heading?: string
desc?: string
children?: React.ReactNode
}
export interface HeroSectionProps {
location: Location
heading?: string
desc?: string
}
export interface NavibarProps {
location: Location
}
export interface ContainerProps {
children?: React.ReactNode
}
export interface SectionProps {
children?: React.ReactNode
color?: string
bgColor?: string
bottomArrow?: boolean
}
export interface SeoProps {
description?: string
lang?: string
meta?: Array<{ name?: string; property?: string; content?: string }>
title?: string
previewImg?: string
}
export interface SolidButtonProps {
children: React.ReactNode
theme?: 'light' | 'dark'
type?: 'button' | 'submit' | 'reset'
disabled?: boolean
onClick?: React.MouseEventHandler<HTMLButtonElement>
}
export interface OutlineButtonProps {
children: React.ReactNode
}
export interface FaqProps {
question: string
answer: string
}
export interface FeatureProps {
title: string
desc: string
Icon: IconType
className?: string
}
export interface ReasonProps {
text: string
bgColor?: string
}
export interface ArtProps {
src: string
info?: string
}
export interface StyledAnchorProps {
href: string
children?: React.ReactNode
}
export type SearchPost = {
id: string
html: string
slug: string
title: string
date: string
previewImg?: PostFrontmatter['previewImg']
}