diff --git a/components/AlbyInstaller.tsx b/components/AlbyInstaller.tsx index ec79d2b..a425df5 100644 --- a/components/AlbyInstaller.tsx +++ b/components/AlbyInstaller.tsx @@ -5,7 +5,7 @@ interface AlbyInstallerProps { onInstalled?: () => void } -function InfoIcon() { +function InfoIcon(): JSX.Element { return ( void } -function InstallerActions({ onInstalled, markInstalled }: InstallerActionsProps) { +function InstallerActions({ onInstalled, markInstalled }: InstallerActionsProps): JSX.Element { const connect = useCallback(() => { const alby = getAlbyService() void alby.enable().then(() => { @@ -60,7 +60,7 @@ function InstallerActions({ onInstalled, markInstalled }: InstallerActionsProps) ) } -function InstallerBody({ onInstalled, markInstalled }: InstallerActionsProps) { +function InstallerBody({ onInstalled, markInstalled }: InstallerActionsProps): JSX.Element { return (

Alby Extension Required

@@ -78,12 +78,12 @@ function InstallerBody({ onInstalled, markInstalled }: InstallerActionsProps) { ) } -function useAlbyStatus(onInstalled?: () => void) { +function useAlbyStatus(onInstalled?: () => void): { isInstalled: boolean; isChecking: boolean; markInstalled: () => void } { const [isInstalled, setIsInstalled] = useState(false) const [isChecking, setIsChecking] = useState(true) useEffect(() => { - const checkAlby = () => { + const checkAlby = (): void => { try { const alby = getAlbyService() const installed = alby.isEnabled() @@ -101,14 +101,14 @@ function useAlbyStatus(onInstalled?: () => void) { checkAlby() }, [onInstalled]) - const markInstalled = () => { + const markInstalled = (): void => { setIsInstalled(true) } return { isInstalled, isChecking, markInstalled } } -export function AlbyInstaller({ onInstalled }: AlbyInstallerProps) { +export function AlbyInstaller({ onInstalled }: AlbyInstallerProps): JSX.Element | null { const { isInstalled, isChecking, markInstalled } = useAlbyStatus(onInstalled) if (isChecking || isInstalled) { diff --git a/components/ArticleCard.tsx b/components/ArticleCard.tsx index 182b1fe..31de68e 100644 --- a/components/ArticleCard.tsx +++ b/components/ArticleCard.tsx @@ -11,7 +11,7 @@ interface ArticleCardProps { onUnlock?: (article: Article) => void } -function ArticleHeader({ article }: { article: Article }) { +function ArticleHeader({ article }: { article: Article }): JSX.Element { return (

{article.title}

@@ -37,7 +37,7 @@ function ArticleMeta({ paymentInvoice: ReturnType['paymentInvoice'] onClose: () => void onPaymentComplete: () => void -}) { +}): JSX.Element { return ( <> {error &&

{error}

} @@ -55,7 +55,7 @@ function ArticleMeta({ ) } -export function ArticleCard({ article, onUnlock }: ArticleCardProps) { +export function ArticleCard({ article, onUnlock }: ArticleCardProps): JSX.Element { const { pubkey, connect } = useNostrAuth() const { loading, diff --git a/components/ArticleEditor.tsx b/components/ArticleEditor.tsx index eee80bb..f50c52f 100644 --- a/components/ArticleEditor.tsx +++ b/components/ArticleEditor.tsx @@ -12,7 +12,7 @@ interface ArticleEditorProps { } -function SuccessMessage() { +function SuccessMessage(): JSX.Element { return (

Article Published!

@@ -21,7 +21,7 @@ function SuccessMessage() { ) } -export function ArticleEditor({ onPublishSuccess, onCancel, seriesOptions, onSelectSeries }: ArticleEditorProps) { +export function ArticleEditor({ onPublishSuccess, onCancel, seriesOptions, onSelectSeries }: ArticleEditorProps): JSX.Element { const { connected, pubkey, connect } = useNostrAuth() const { loading, error, success, publishArticle } = useArticlePublishing(pubkey ?? null) const [draft, setDraft] = useState({ @@ -61,8 +61,8 @@ function buildSubmitHandler( onPublishSuccess?: (articleId: string) => void, connect?: () => Promise, connected?: boolean -) { - return async () => { +): () => Promise { + return async (): Promise => { if (!connected && connect) { await connect() return diff --git a/components/ArticleEditorForm.tsx b/components/ArticleEditorForm.tsx index 14d5386..d3ec9b1 100644 --- a/components/ArticleEditorForm.tsx +++ b/components/ArticleEditorForm.tsx @@ -25,7 +25,7 @@ function CategoryField({ }: { value: ArticleDraft['category'] onChange: (value: import('@/types/nostr').ArticleCategory | undefined) => void -}) { +}): JSX.Element { return ( void seriesOptions?: { id: string; title: string }[] | undefined onSelectSeries?: ((seriesId: string | undefined) => void) | undefined -}) => ( +}): JSX.Element => (
) -function ArticleTitleField({ draft, onDraftChange }: { draft: ArticleDraft; onDraftChange: (draft: ArticleDraft) => void }) { +function ArticleTitleField({ draft, onDraftChange }: { draft: ArticleDraft; onDraftChange: (draft: ArticleDraft) => void }): JSX.Element { return ( void -}) { +}): JSX.Element { return ( void seriesOptions: { id: string; title: string }[] onSelectSeries?: ((seriesId: string | undefined) => void) | undefined -}) { +}): JSX.Element { const handleChange = buildSeriesChangeHandler(draft, onDraftChange, onSelectSeries) return ( @@ -169,8 +169,8 @@ function buildSeriesChangeHandler( draft: ArticleDraft, onDraftChange: (draft: ArticleDraft) => void, onSelectSeries?: ((seriesId: string | undefined) => void) | undefined -) { - return (e: React.ChangeEvent) => { +): (e: React.ChangeEvent) => void { + return (e: React.ChangeEvent): void => { const value = e.target.value || undefined const nextDraft = { ...draft } if (value) { @@ -189,7 +189,7 @@ const ArticleFieldsRight = ({ }: { draft: ArticleDraft onDraftChange: (draft: ArticleDraft) => void -}) => ( +}): JSX.Element => (
{t('article.editor.content.label')}
@@ -230,7 +230,7 @@ export function ArticleEditorForm({ onCancel, seriesOptions, onSelectSeries, -}: ArticleEditorFormProps) { +}: ArticleEditorFormProps): JSX.Element { return (

{t('article.editor.title')}

diff --git a/components/ArticleField.tsx b/components/ArticleField.tsx index 04ff855..0de08c3 100644 --- a/components/ArticleField.tsx +++ b/components/ArticleField.tsx @@ -30,7 +30,7 @@ function NumberOrTextInput({ min?: number className: string onChange: (value: string | number) => void -}) { +}): JSX.Element { const inputProps = { id, type, @@ -64,7 +64,7 @@ function TextAreaInput({ rows?: number className: string onChange: (value: string | number) => void -}) { +}): JSX.Element { const areaProps = { id, value, @@ -81,7 +81,7 @@ function TextAreaInput({ ) } -export function ArticleField(props: ArticleFieldProps) { +export function ArticleField(props: ArticleFieldProps): JSX.Element { const { id, label, value, onChange, required = false, type = 'text', rows, placeholder, helpText, min } = props const inputClass = diff --git a/components/ArticleFilters.tsx b/components/ArticleFilters.tsx index 143d7f4..43ddfd3 100644 --- a/components/ArticleFilters.tsx +++ b/components/ArticleFilters.tsx @@ -46,8 +46,8 @@ function FiltersGrid({ data: FiltersData filters: ArticleFilters onFiltersChange: (filters: ArticleFilters) => void -}) { - const update = (patch: Partial) => onFiltersChange({ ...filters, ...patch }) +}): JSX.Element { + const update = (patch: Partial): void => onFiltersChange({ ...filters, ...patch }) return (
@@ -63,7 +63,7 @@ function FiltersHeader({ }: { hasActiveFilters: boolean onClear: () => void -}) { +}): JSX.Element { return (

{t('filters.sort')}

@@ -83,7 +83,7 @@ function SortFilter({ }: { value: SortOption onChange: (value: SortOption) => void -}) { +}): JSX.Element { return (