@@ -42,6 +42,9 @@ const EditTimeline: React.FC<ContestProps> = ({ mode, user }) => {
4242 } ) ;
4343 const [ addContestTime , { error : addContestTimeError } ] =
4444 graphql . useAddContestTimeMutation ( ) ;
45+ const [ deleteContestTime , { error : deleteContestTimeError } ] =
46+ graphql . useDeleteContestTimeMutation ( ) ; // 添加删除事件的 mutation
47+
4548 /* ---------------- useEffect ---------------- */
4649 useEffect ( ( ) => {
4750 if ( getContestTimesError ) {
@@ -53,6 +56,11 @@ const EditTimeline: React.FC<ContestProps> = ({ mode, user }) => {
5356 message . error ( "添加事件失败" ) ;
5457 }
5558 } , [ addContestTimeError ] ) ;
59+ useEffect ( ( ) => {
60+ if ( deleteContestTimeError ) {
61+ message . error ( "删除事件失败" ) ;
62+ }
63+ } , [ deleteContestTimeError ] ) ;
5664 /* ---------------- 业务逻辑函数 ---------------- */
5765 const handleAdd = async ( ) => {
5866 try {
@@ -75,6 +83,24 @@ const EditTimeline: React.FC<ContestProps> = ({ mode, user }) => {
7583 }
7684 } ;
7785
86+ const handleDelete = async ( event : string ) => {
87+ try {
88+ await deleteContestTime ( {
89+ variables : {
90+ contest_id : Contest_id ,
91+ event : event ,
92+ } ,
93+ } ) ;
94+ if ( deleteContestTimeError )
95+ throw new Error ( deleteContestTimeError . message ) ;
96+ message . success ( "事件删除成功" ) ;
97+ refetchContestTimes ( ) ; // 刷新事件列表
98+ } catch ( e ) {
99+ console . log ( e ) ;
100+ message . error ( "删除事件失败" ) ;
101+ }
102+ } ;
103+
78104 const panelStyle : React . CSSProperties = {
79105 marginBottom : 12 ,
80106 background : token . colorFillAlter ,
@@ -92,9 +118,18 @@ const EditTimeline: React.FC<ContestProps> = ({ mode, user }) => {
92118 { dayjs ( item . end ) . format ( "YYYY-MM-DD" ) }
93119 < br />
94120 描述:{ item . description }
121+ < br />
122+ < Button
123+ danger
124+ onClick = { ( ) => handleDelete ( item . event ) }
125+ style = { { marginTop : "10px" } }
126+ >
127+ 删除事件
128+ </ Button >
95129 </ >
96130 ) ,
97131 } ) ) ;
132+
98133 /* ---------------- ⻚⾯组件 ---------------- */
99134 return (
100135 < Layout >
0 commit comments