import React, { useMemo } from "react"; import { isDesktopApp } from "./const"; import { useAppRoot } from "./001_provider/001_AppRootProvider"; import { useMessageBuilder } from "./hooks/useMessageBuilder"; export type TitleProps = { lineNum: number mainTitle: string subTitle: string } export const Title = (props: TitleProps) => { const messageBuilderState = useMessageBuilder() useMemo(() => { messageBuilderState.setMessage(__filename, "github", { "ja": "github", "en": "github" }) messageBuilderState.setMessage(__filename, "manual", { "ja": "マニュアル", "en": "manual" }) messageBuilderState.setMessage(__filename, "screenCapture", { "ja": "録画ツール", "en": "Record Screen" }) messageBuilderState.setMessage(__filename, "support", { "ja": "支援", "en": "Donation" }) }, []) const githubLink = useMemo(() => { return isDesktopApp() ? ( // @ts-ignore { window.electronAPI.openBrowser("https://github.com/w-okada/voice-changer") }}>
{messageBuilderState.getMessage(__filename, "github")}
) : (
{messageBuilderState.getMessage(__filename, "github")}
) }, []) const manualLink = useMemo(() => { return isDesktopApp() ? ( // @ts-ignore { window.electronAPI.openBrowser("https://github.com/w-okada/voice-changer/blob/master/tutorials/tutorial_rvc_ja_latest.md") }}>
{messageBuilderState.getMessage(__filename, "manual")}
) : (
{messageBuilderState.getMessage(__filename, "manual")}
) }, []) const toolLink = useMemo(() => { return isDesktopApp() ? (

{ // @ts-ignore window.electronAPI.openBrowser("https://w-okada.github.io/screen-recorder-ts/") }}> {messageBuilderState.getMessage(__filename, "screenCapture")}

) : (

{ window.open("https://w-okada.github.io/screen-recorder-ts/", '_blank', "noreferrer") }}> {messageBuilderState.getMessage(__filename, "screenCapture")}

) }, []) const coffeeLink = useMemo(() => { return isDesktopApp() ? ( // @ts-ignore { window.electronAPI.openBrowser("https://www.buymeacoffee.com/wokad") }}>
{messageBuilderState.getMessage(__filename, "support")}
) : (
{messageBuilderState.getMessage(__filename, "support")}
) }, []) const titleRow = useMemo(() => { if (props.lineNum == 2) { return ( <>
{props.mainTitle}
{props.subTitle} {githubLink} {manualLink} {toolLink} {coffeeLink}
) } else { return (
{props.mainTitle} {props.subTitle} {githubLink} {manualLink} {toolLink} {coffeeLink}
) } }, [props.subTitle, props.mainTitle, props.lineNum]) return titleRow };