File size: 2,062 Bytes
e85fa50
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
import React from 'react';
import { useNavigate, useParams } from 'react-router-dom';
import Layout from '../components/Layout/Layout';
import Card, { CardHeader, CardContent } from '../components/common/Card';
import PromptForm from '../components/Prompt/PromptForm';
import { useApp } from '../contexts/AppContext';

const EditPromptPage: React.FC = () => {
  const { groupId, promptId } = useParams<{ groupId: string; promptId: string }>();
  const navigate = useNavigate();
  const { promptGroups, updatePrompt } = useApp();

  if (!groupId || !promptId) {
    return <div>参数无效</div>;
  }

  const promptGroup = promptGroups.find(group => group._id === groupId);

  if (!promptGroup) {
    return (
      <Layout title="未找到" showBackButton>

        <div className="ios-empty-state">

          <h3 className="ios-empty-state-title">未找到提示词组</h3>

          <p className="ios-empty-state-text">该提示词组可能已被删除</p>

        </div>

      </Layout>
    );
  }

  const prompt = promptGroup.prompts.find(p => p._id === promptId);

  if (!prompt) {
    return (
      <Layout title="未找到" showBackButton>

        <div className="ios-empty-state">

          <h3 className="ios-empty-state-title">未找到提示词</h3>

          <p className="ios-empty-state-text">该提示词可能已被删除</p>

        </div>

      </Layout>
    );
  }

  const handleSubmit = (promptData: { title: string; content: string; tags: string[] }) => {
    updatePrompt(groupId, prompt._id, promptData);
    navigate(`/prompt-group/${groupId}`);
  };
  
  return (
    <Layout title="编辑提示词" showBackButton>

      <Card>

        <CardHeader title={`编辑: ${prompt.title}`} />

        <CardContent>

          <PromptForm

            initialPrompt={prompt}

            onSubmit={handleSubmit}

            onCancel={() => navigate(`/prompt-group/${groupId}`)}

          />

        </CardContent>

      </Card>

    </Layout>
  );
};

export default EditPromptPage;