@@ -52,12 +52,12 @@ const Editor = ({ content }: { content: JSONContent[] | null }) => {
5252 const [ articleData , setArticleData ] = useState ( {
5353 title : '' ,
5454 authorName : '모아가이드' ,
55- categoryName : 'none' ,
56- type : 'all' ,
57- isPremium : false ,
58- imageLink : '테스트' ,
55+ categoryName : '' ,
56+ type : '' ,
5957 paywallUp : '' ,
6058 paywallDown : '' ,
59+ imageLink : '테스트' ,
60+ isPremium : false ,
6161 } ) ;
6262 const [ showPreview , setShowPreview ] = useState ( false ) ;
6363
@@ -138,8 +138,8 @@ const Editor = ({ content }: { content: JSONContent[] | null }) => {
138138 CustomFile ,
139139 CustomPaywall ,
140140 ] ,
141- content : `<div class="se-component se-text se-l-default">
142- <div class="component-text mt-10">
141+ content : `<div class="se-section se-section -text se-l-default">
142+ <div class="component-text mt-10 relative px-[44px] mx-[-44px] ">
143143 <p></p>
144144 </div>
145145 </div>` ,
@@ -204,6 +204,7 @@ const Editor = ({ content }: { content: JSONContent[] | null }) => {
204204 } ) ;
205205
206206 useEffect ( ( ) => {
207+ console . log ( 'content' , editor ?. getHTML ( ) ) ;
207208 if ( content && editor ?. commands ) {
208209 editor ?. commands . setContent ( content ) ;
209210 }
@@ -212,9 +213,52 @@ const Editor = ({ content }: { content: JSONContent[] | null }) => {
212213 const handleSavePreview = ( ) => {
213214 if ( ! editor ) return ;
214215
215- const { isPremium, paywallUp, paywallDown, imageLink } =
216+ const { categoryName, authorName, type, title } = articleData ;
217+ const validations = [
218+ {
219+ condition : categoryName === 'none' ,
220+ message : '카테고리를 선택해주세요.' ,
221+ } ,
222+ { condition : authorName === 'none' , message : '작성자를 선택해주세요.' } ,
223+ { condition : type === 'none' , message : '콘텐츠를 선택해주세요.' } ,
224+ { condition : ! title . trim ( ) , message : '제목을 입력해주세요.' } ,
225+ ] ;
226+
227+ for ( const { condition, message } of validations ) {
228+ if ( condition ) {
229+ alert ( message ) ;
230+ return ;
231+ }
232+ }
233+
234+ if (
235+ editor . getHTML ( ) ===
236+ '<div class="component-text mt-10 relative px-[44px] mx-[-44px]"><p class="text-left text-[15px]" style="line-height: 1.8;"></p></div>'
237+ ) {
238+ alert ( '내용을 입력해주세요.' ) ;
239+ return ;
240+ }
241+
242+ const { paywallUp, paywallDown, isPremium, imageLink } =
216243 extractPaywallData ( editor ) ;
217244
245+ if ( ! paywallUp ) {
246+ alert ( '내용을 입력해주세요.' ) ;
247+ return ;
248+ }
249+
250+ if ( ! isPremium ) {
251+ alert ( '페이월을 삽입해주세요.' ) ;
252+ return ;
253+ }
254+
255+ if ( ! paywallDown ) {
256+ alert (
257+ '페이월은 콘텐츠 최하단에\n 노출할 수 없습니다.\n 페이월 이후 내용을 입력해주세요.' ,
258+ ) ;
259+ return ;
260+ }
261+
218262 setArticleData ( ( prev ) => ( {
219263 ...prev ,
220264 isPremium,
0 commit comments