Files
code-box/component/ui/toolBox.tsx
T
2026-10-08 11:34:47 +08:00

117 lines
2.9 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import qrcodeUrl from "raw:~/public/wx/gzh.jpg"
import React, { useState } from "react"
import { i18n } from "~tools"
import { editQRCodeImg } from "~utils/makerQRPost"
import { openSyncPage } from "~utils/syncArticle"
const boxStyles = {
box: {
position: "fixed" as const,
border: "1px solid #D9DADC",
left: "25px",
top: "85px",
width: "140px",
padding: "16px",
cursor: "pointer"
},
close: {
position: "absolute" as const,
top: "-5px",
right: "0px",
background: "none",
border: "none",
fontSize: "20px",
cursor: "pointer",
padding: "10px"
},
img: {
width: "100%"
},
item: {
color: "#000000",
fontSize: "16px",
marginBottom: "3px"
}
}
export default function ToolBox(props: any) {
const [isShowTag, setIsShowTag] = useState(true)
const handleGetDescription = () => {
props.onGetDescription()
}
const handleEditMarkdown = () => {
props.onEditMarkdown()
}
const handleDownloadMarkdown = () => {
props.onDownloadMarkdown()
}
const handleParseMarkdown = () => {
props.onParseMarkdown()
}
const handlePrint = () => {
props.onPrint()
}
const handleDownloadWord = () => {
props.onDownloadWord?.()
}
const getArticle = () => {
const href = encodeURIComponent(location.href)
window.open(`https://paywallbuster.com/articles/?article=${href}`)
}
const handleClose = () => {
setIsShowTag(false)
}
return isShowTag ? (
<div
id="ws_cmbm"
className="ws_cmbmc"
style={{ ...boxStyles.box, ...props.style }}>
<button style={boxStyles.close} onClick={handleClose} aria-label="Close">
×
</button>
<img src={qrcodeUrl} alt="qrcodeUrl" style={boxStyles.img} />
<div style={boxStyles.item}>
<a onClick={handleGetDescription}>{i18n("getDescription")}</a>
</div>
<div style={boxStyles.item}>
<a onClick={handleEditMarkdown}>{i18n("editMarkdown")}</a>
</div>
<div style={boxStyles.item}>
<a onClick={handleDownloadMarkdown}>{i18n("downloadMarkdown")}</a>
</div>
<div style={boxStyles.item}>
<a onClick={handleParseMarkdown}>{i18n("parseMarkdown")}</a>
</div>
<div style={boxStyles.item}>
<a onClick={handlePrint}>{i18n("downloadPdf")}</a>
</div>
<div style={boxStyles.item}>
<a onClick={handleDownloadWord}>{i18n("downloadWord")}</a>
</div>
<div style={boxStyles.item}>
<a onClick={() => editQRCodeImg()}>{i18n("makerQRPost")}</a>
</div>
<div style={boxStyles.item}>
<a onClick={() => getArticle()}>{i18n("getArticle")}</a>
</div>
<div style={boxStyles.item}>
<a onClick={() => openSyncPage()}>{i18n("syncArticle") || "文章同步"}</a>
</div>
<a style={boxStyles.item} href="https://www.code-box.fun" target="_blank">
帮助
</a>
</div>
) : (
<></>
)
}