feat: 删除不再使用的数据库和环境相关的工具函数

This commit is contained in:
雨霖铃
2026-01-29 17:27:18 +08:00
parent 92026ee7fa
commit ed5e90f0fc
5 changed files with 5 additions and 84 deletions
+1 -10
View File
@@ -49,31 +49,25 @@ const TIMESTAMP_UNITS = [
]; ];
export function DatetimeToTimestamp() { export function DatetimeToTimestamp() {
/** @type {[string, function]} 输入的日期时间字符串 */
const [dateValue, setDateValue] = useState(() => formatWithZone(Date.now(), 'Asia/Shanghai')); const [dateValue, setDateValue] = useState(() => formatWithZone(Date.now(), 'Asia/Shanghai'));
/** @type {[string, function]} 选择的时区 */
const [selectedZone, setSelectedZone] = useState('Asia/Shanghai'); const [selectedZone, setSelectedZone] = useState('Asia/Shanghai');
/** @type {[string, function]} 转换结果 */
const [result, setResult] = useState(''); const [result, setResult] = useState('');
/** @type {[string, function]} 时间戳单位 ('milliseconds' | 'seconds') */
const [unit, setUnit] = useState('milliseconds'); const [unit, setUnit] = useState('milliseconds');
/** @type {[string, function]} 错误信息 */
const [error, setError] = useState(''); const [error, setError] = useState('');
/** /**
* 转换日期时间为时间戳 * 转换日期时间为时间戳
* @type {function(): void}
*/ */
const handleConvertDatetimeToTimestamp = useCallback(() => { const handleConvertDatetimeToTimestamp = useCallback(() => {
try { try {
setError(''); setError('');
const timestamp = formatWithDate(dateValue, selectedZone); const timestamp = formatWithDate(dateValue, selectedZone);
if (isNaN(timestamp)) { if (typeof timestamp !== 'number' || isNaN(timestamp)) {
setError('无效的日期时间格式'); setError('无效的日期时间格式');
setResult(''); setResult('');
return; return;
@@ -90,7 +84,6 @@ export function DatetimeToTimestamp() {
/** /**
* 处理日期时间输入变化 * 处理日期时间输入变化
* @type {function(React.ChangeEvent<HTMLInputElement>): void}
*/ */
const handleDateChange = useCallback((e) => { const handleDateChange = useCallback((e) => {
setDateValue(e.target.value); setDateValue(e.target.value);
@@ -99,7 +92,6 @@ export function DatetimeToTimestamp() {
/** /**
* 处理时区选择变化 * 处理时区选择变化
* @type {function(React.ChangeEvent<HTMLSelectElement>): void}
*/ */
const handleZoneChange = useCallback((e) => { const handleZoneChange = useCallback((e) => {
setSelectedZone(e.target.value); setSelectedZone(e.target.value);
@@ -107,7 +99,6 @@ export function DatetimeToTimestamp() {
/** /**
* 处理时间戳单位变化 * 处理时间戳单位变化
* @type {function(React.ChangeEvent<HTMLSelectElement>): void}
*/ */
const handleUnitChange = useCallback( const handleUnitChange = useCallback(
(e) => { (e) => {
+4 -30
View File
@@ -1,16 +1,9 @@
import { useEffect, useState, useRef, useCallback } from 'react'; import { useEffect, useState, useCallback } from 'react';
import CopyButton from './CopyButton'; import CopyButton from './CopyButton';
/** /**
* 时间戳显示和执行组件 * 时间戳显示和执行组件
* *
* 功能特性:
* 1. 实时显示当前时间戳(毫秒/秒)
* 2. 支持毫秒和秒单位切换
* 3. 支持启动/停止时间戳自动更新
* 4. 提供复制时间戳功能
* 5. 响应式设计和良好的可访问性
*
* @component * @component
* @example * @example
* ```jsx * ```jsx
@@ -29,9 +22,6 @@ export function TimestampExecution() {
/** @type {[boolean, function]} 时间戳是否正在自动更新 */ /** @type {[boolean, function]} 时间戳是否正在自动更新 */
const [isRunningTimestamp, setIsRunningTimestamp] = useState(true); const [isRunningTimestamp, setIsRunningTimestamp] = useState(true);
/** @type {React.RefObject<NodeJS.Timeout | null>} 定时器引用,用于清理 */
const timerRef = useRef(null);
/** /**
* 计算显示的时间戳值 * 计算显示的时间戳值
* @type {number} * @type {number}
@@ -40,10 +30,6 @@ export function TimestampExecution() {
? currentTimestamp ? currentTimestamp
: Math.floor(currentTimestamp / 1000); : Math.floor(currentTimestamp / 1000);
/**
* 计算单位文本
* @type {string}
*/
const unitText = showMilliseconds ? '毫秒' : '秒'; const unitText = showMilliseconds ? '毫秒' : '秒';
/** /**
@@ -51,32 +37,21 @@ export function TimestampExecution() {
* 根据 isRunningTimestamp 和 showMilliseconds 控制定时器的启停和间隔 * 根据 isRunningTimestamp 和 showMilliseconds 控制定时器的启停和间隔
*/ */
useEffect(() => { useEffect(() => {
// 清除之前的定时器 let timer: number;
if (timerRef.current) {
clearInterval(timerRef.current);
timerRef.current = null;
}
// 如果需要运行,创建新的定时器
if (isRunningTimestamp) { if (isRunningTimestamp) {
const interval = showMilliseconds ? 100 : 1000; const interval = showMilliseconds ? 100 : 1000;
timerRef.current = setInterval(() => { timer = window.setInterval(() => {
setCurrentTimestamp(Math.floor(Date.now())); setCurrentTimestamp(Math.floor(Date.now()));
}, interval); }, interval);
} }
// 清理函数 // 清理函数
return () => { return () => clearInterval(timer);
if (timerRef.current) {
clearInterval(timerRef.current);
timerRef.current = null;
}
};
}, [isRunningTimestamp, showMilliseconds]); }, [isRunningTimestamp, showMilliseconds]);
/** /**
* 切换时间戳显示单位(毫秒/秒) * 切换时间戳显示单位(毫秒/秒)
* @type {function(): void}
*/ */
const toggleUnit = useCallback(() => { const toggleUnit = useCallback(() => {
setShowMilliseconds((prev) => !prev); setShowMilliseconds((prev) => !prev);
@@ -84,7 +59,6 @@ export function TimestampExecution() {
/** /**
* 切换时间戳自动更新状态(启动/停止) * 切换时间戳自动更新状态(启动/停止)
* @type {function(): void}
*/ */
const toggleTimestamp = useCallback(() => { const toggleTimestamp = useCallback(() => {
setIsRunningTimestamp((prev) => !prev); setIsRunningTimestamp((prev) => !prev);
-7
View File
@@ -1,7 +0,0 @@
import Dexie from "dexie";
export const db = new Dexie("testImagesDb");
db.version(1).stores({
images: '++id, created, source'
});
-7
View File
@@ -1,7 +0,0 @@
/**
* 判断当前是否处于 Chrome 插件环境
* @returns {false|chrome.storage.LocalStorageArea}
*/
export const isExtension = () => {
return typeof chrome !== 'undefined' && chrome.storage && chrome.storage.local;
}
-30
View File
@@ -1,30 +0,0 @@
// 判断当前是否处于 Chrome 插件环境
const isExtension = typeof chrome !== 'undefined' && chrome.storage && chrome.storage.local;
const storageAdapter = {
// 获取数据
get: async (key) => {
if (isExtension) {
const result = await chrome.storage.local.get([key]);
return result[key];
} else {
const item = localStorage.getItem(key);
try {
return JSON.parse(item); // 保持与插件版一致的对象处理
} catch {
return item;
}
}
},
// 设置数据
set: async (key, value) => {
if (isExtension) {
await chrome.storage.local.set({[key]: value});
} else {
localStorage.setItem(key, JSON.stringify(value));
}
}
};
export default storageAdapter;