mirror of
https://github.com/zhayujie/chatgpt-on-wechat.git
synced 2026-07-19 21:07:28 +08:00
fix(desktop): adapt remaining pages to updated types
This commit is contained in:
@@ -85,14 +85,12 @@ const ChannelsPage: React.FC<ChannelsPageProps> = ({ baseUrl }) => {
|
|||||||
{ch.fields.map((field) => (
|
{ch.fields.map((field) => (
|
||||||
<div key={field.key}>
|
<div key={field.key}>
|
||||||
<label className="block text-sm font-medium text-slate-600 dark:text-slate-400 mb-1">
|
<label className="block text-sm font-medium text-slate-600 dark:text-slate-400 mb-1">
|
||||||
{field.label?.zh || field.label?.en || field.key}
|
{field.label || field.key}
|
||||||
{field.required && <span className="text-red-500 ml-0.5">*</span>}
|
|
||||||
</label>
|
</label>
|
||||||
<input
|
<input
|
||||||
type={field.type === 'password' ? 'password' : 'text'}
|
type={field.type === 'secret' ? 'password' : 'text'}
|
||||||
value={configValues[ch.name]?.[field.key] || ''}
|
value={configValues[ch.name]?.[field.key] || ''}
|
||||||
onChange={(e) => handleFieldChange(ch.name, field.key, e.target.value)}
|
onChange={(e) => handleFieldChange(ch.name, field.key, e.target.value)}
|
||||||
placeholder={field.placeholder?.zh || field.placeholder?.en || ''}
|
|
||||||
className="w-full px-3 py-2 rounded-lg border border-slate-200 dark:border-slate-600 bg-slate-50 dark:bg-white/5 text-sm text-slate-800 dark:text-slate-100 focus:outline-none focus:border-primary-500 transition-colors"
|
className="w-full px-3 py-2 rounded-lg border border-slate-200 dark:border-slate-600 bg-slate-50 dark:bg-white/5 text-sm text-slate-800 dark:text-slate-100 focus:outline-none focus:border-primary-500 transition-colors"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -95,7 +95,7 @@ const MemoryPage: React.FC<MemoryPageProps> = ({ baseUrl }) => {
|
|||||||
>
|
>
|
||||||
<td className="px-4 py-3 text-sm font-medium text-slate-700 dark:text-slate-200 font-mono">{item.filename}</td>
|
<td className="px-4 py-3 text-sm font-medium text-slate-700 dark:text-slate-200 font-mono">{item.filename}</td>
|
||||||
<td className="px-4 py-3 text-sm text-slate-500 dark:text-slate-400">{formatSize(item.size)}</td>
|
<td className="px-4 py-3 text-sm text-slate-500 dark:text-slate-400">{formatSize(item.size)}</td>
|
||||||
<td className="px-4 py-3 text-sm text-slate-500 dark:text-slate-400">{formatTime(item.modified)}</td>
|
<td className="px-4 py-3 text-sm text-slate-500 dark:text-slate-400">{item.updated_at}</td>
|
||||||
</tr>
|
</tr>
|
||||||
))}
|
))}
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ const SkillsPage: React.FC<SkillsPageProps> = ({ baseUrl }) => {
|
|||||||
<div key={tool.name} className="bg-white dark:bg-[#1A1A1A] border border-slate-200 dark:border-white/10 rounded-xl p-4">
|
<div key={tool.name} className="bg-white dark:bg-[#1A1A1A] border border-slate-200 dark:border-white/10 rounded-xl p-4">
|
||||||
<div className="flex items-center gap-2 mb-1.5">
|
<div className="flex items-center gap-2 mb-1.5">
|
||||||
<i className="fas fa-cog text-xs text-primary-400" />
|
<i className="fas fa-cog text-xs text-primary-400" />
|
||||||
<span className="text-sm font-medium text-slate-700 dark:text-slate-200">{tool.display_name || tool.name}</span>
|
<span className="text-sm font-medium text-slate-700 dark:text-slate-200">{tool.name}</span>
|
||||||
</div>
|
</div>
|
||||||
<p className="text-xs text-slate-500 dark:text-slate-400 leading-relaxed">{tool.description}</p>
|
<p className="text-xs text-slate-500 dark:text-slate-400 leading-relaxed">{tool.description}</p>
|
||||||
</div>
|
</div>
|
||||||
@@ -104,7 +104,7 @@ const SkillsPage: React.FC<SkillsPageProps> = ({ baseUrl }) => {
|
|||||||
<div className="flex items-center justify-between mb-2">
|
<div className="flex items-center justify-between mb-2">
|
||||||
<div className="flex items-center gap-2">
|
<div className="flex items-center gap-2">
|
||||||
<i className="fas fa-bolt text-xs text-amber-400" />
|
<i className="fas fa-bolt text-xs text-amber-400" />
|
||||||
<span className="text-sm font-medium text-slate-700 dark:text-slate-200">{skill.display_name || skill.name}</span>
|
<span className="text-sm font-medium text-slate-700 dark:text-slate-200">{skill.name}</span>
|
||||||
</div>
|
</div>
|
||||||
<button
|
<button
|
||||||
onClick={() => handleToggle(skill)}
|
onClick={() => handleToggle(skill)}
|
||||||
|
|||||||
@@ -63,9 +63,13 @@ const TasksPage: React.FC<TasksPageProps> = ({ baseUrl }) => {
|
|||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div className="flex items-center gap-4 text-xs text-slate-500 dark:text-slate-400">
|
<div className="flex items-center gap-4 text-xs text-slate-500 dark:text-slate-400">
|
||||||
<span>Cron: <code className="bg-slate-100 dark:bg-white/10 px-1.5 py-0.5 rounded font-mono">{task.cron}</code></span>
|
<span>
|
||||||
{task.next_run && <span>Next: {task.next_run}</span>}
|
{task.schedule?.type}:{' '}
|
||||||
{task.last_run && <span>Last: {task.last_run}</span>}
|
<code className="bg-slate-100 dark:bg-white/10 px-1.5 py-0.5 rounded font-mono">
|
||||||
|
{task.schedule?.expression || task.schedule?.run_at || `${task.schedule?.seconds ?? ''}s`}
|
||||||
|
</code>
|
||||||
|
</span>
|
||||||
|
{task.next_run_at && <span>Next: {task.next_run_at}</span>}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
))}
|
))}
|
||||||
|
|||||||
Reference in New Issue
Block a user