| 投稿 | -変更 | -日時 | -
|---|---|---|
|
- | )}
-
- {change.tag
- ? |
-
- {change.user
- ? (
- - {dateString (change.timestamp)} - |
-
| 投稿 | +版 | +タイトル | +URL | +タグ | +オリジナルの投稿日時 | +更新日時 | ++ |
|---|---|---|---|---|---|---|---|
|
+ | )}
+ {change.postId}.{change.versionNo} | +{renderDiff (change.title)} | +{renderDiff (change.url)} | +
+ {change.tags.map ((tag, i) => (
+ tag.type === 'added'
+ ? (
+
+ {tag.name}
+ )
+ : (
+ tag.type === 'removed'
+ ? (
+ |
+ + {change.versionNo === 1 + ? originalCreatedAtString (change.originalCreatedFrom.current, + change.originalCreatedBefore.current) + : renderDiff ({ + current: originalCreatedAtString ( + change.originalCreatedFrom.current, + change.originalCreatedBefore.current), + prev: originalCreatedAtString ( + change.originalCreatedFrom.prev, + change.originalCreatedBefore.prev) })} + | +
+ {change.createdByUser
+ ? (
+ + {dateString (change.createdAt)} + |
+ + { + e.preventDefault () + + if (!(confirm ( + `『${ change.title.current + || change.url.current }』を版 ${ + change.versionNo } に差戻します.\nよろしいですか?`))) + return + + await apiPut ( + `/posts/${ change.postId }`, + { title: change.title.current, + tags: change.tags + .filter (t => t.type !== 'removed') + .map (t => t.name) + .filter (t => t.slice (0, 5) !== 'nico:') + .join (' '), + original_created_from: + change.originalCreatedFrom.current, + original_created_before: + change.originalCreatedBefore.current }) + + qc.invalidateQueries ({ queryKey: postsKeys.root }) + qc.invalidateQueries ({ queryKey: tagsKeys.root }) + toast ({ description: '更新しました.' }) + }}> + 復元 + + | +