{
}, 3200)
}
+/**
+ * 새 게시물 미리보기
+ * @param {Object} payload - 게시물 입력값
+ * @returns {void}
+ */
+const previewPost = (payload) => {
+ localStorage.setItem('SORI_ADMIN_POST_PREVIEW', JSON.stringify({
+ ...payload,
+ previewedAt: new Date().toISOString()
+ }))
+ window.open('/admin/posts/preview', '_blank', 'noopener,noreferrer')
+}
+
/**
* 새 게시물 저장
* @param {Object} payload - 게시물 입력값
@@ -71,7 +84,7 @@ onBeforeUnmount(() => {
{{ errorMessage }}
-
+
+definePageMeta({
+ layout: 'post'
+})
+
+const previewPost = ref(null)
+const previewError = ref('')
+
+/**
+ * 미리보기 저장 값을 읽어 온다
+ * @returns {void}
+ */
+const loadPreviewPost = () => {
+ const rawPreview = localStorage.getItem('SORI_ADMIN_POST_PREVIEW')
+
+ if (!rawPreview) {
+ previewError.value = '미리보기 데이터가 없습니다.'
+ return
+ }
+
+ try {
+ previewPost.value = JSON.parse(rawPreview)
+ } catch {
+ previewError.value = '미리보기 데이터를 읽지 못했습니다.'
+ }
+}
+
+onMounted(loadPreviewPost)
+
+
+
+
+
+ 관리자 미리보기
+
+
+
+ {{ previewError }}
+
+
+
+
+
+ PREVIEW
+
+
+ {{ previewPost.title || '제목 없음' }}
+
+
+
+
+
+
+