diff --git a/apps/blog/components/post-form.tsx b/apps/blog/components/post-form.tsx index 8ac86c44..418cace1 100644 --- a/apps/blog/components/post-form.tsx +++ b/apps/blog/components/post-form.tsx @@ -103,7 +103,6 @@ export default function PostForm({ username }: { username: string }) { const router = useRouter(); const [preview, setPreview] = useState(true); const [sideBySide, setSideBySide] = useState(true); - const [postPermlink, setPostPermlink] = useState(''); const { manabarsData } = useManabars(username); const [storedPost, storePost] = useLocalStorage('postData', defaultValues); const { t } = useTranslation('common_blog'); @@ -165,22 +164,12 @@ export default function PostForm({ username }: { username: string }) { const tagsCheck = validateTagInput(watchedValues.tags, watchedValues.category === 'blog', t); const summaryCheck = validateSummoryInput(watchedValues.postSummary, t); const altUsernameCheck = validateAltUsernameInput(watchedValues.author, t); - useEffect(() => { - storePost(watchedValues); - }, [JSON.stringify(watchedValues)]); - - useEffect(() => { - const createPostPermlink = async () => { - const plink = await createPermlink(storedPost?.title ?? '', username, storedPost?.title ?? ''); - setPostPermlink(plink); - }; - createPostPermlink(); - }, [username, storedPost?.title]); async function onSubmit(data: AccountFormValues) { const chain = await hiveChainService.getHiveChain(); const tags = storedPost?.tags.replace(/#/g, '').split(' ') ?? []; const maxAcceptedPayout = await chain.hbd(Number(storedPost.maxAcceptedPayout)); + const postPermlink = await createPermlink(storedPost?.title ?? '', username); try { await transactionService.post( postPermlink, @@ -198,6 +187,11 @@ export default function PostForm({ username }: { username: string }) { console.error(error); } } + + useEffect(() => { + storePost(watchedValues); + }, [JSON.stringify(watchedValues)]); + return (
{ @@ -41,17 +39,6 @@ export function ReplyTextbox({ } }, [hiveRenderer, text]); - useEffect(() => { - const createReplyPermlink = async () => { - if (user && user.isLoggedIn) { - const plink = await createPermlink('', user.username, permlink); - setReplyPermlink(plink); - } - }; - - createReplyPermlink(); - }, [user, permlink]); - const handleCancel = () => { localStorage.removeItem(storageId); if (text === '') return onSetReply(false); diff --git a/packages/transaction/lib/utils.ts b/packages/transaction/lib/utils.ts index 21ee4214..c09c446c 100644 --- a/packages/transaction/lib/utils.ts +++ b/packages/transaction/lib/utils.ts @@ -3,7 +3,7 @@ import base58 from 'bs58'; import secureRandom from 'secure-random'; import { getPostHeader } from './bridge'; -export async function createPermlink(title: string, author: string, postPermlink: string) { +export async function createPermlink(title: string, author: string) { let permlink; if (title && title.trim() !== '') { let s = getSlug(title.replace(/[<>]/g, ''), { truncate: 128 }); @@ -14,10 +14,7 @@ export async function createPermlink(title: string, author: string, postPermlink s = s.toLowerCase().replace(/[^a-z0-9-]+/g, ''); // ensure the permlink is unique - let head = undefined; - try { - head = await getPostHeader(author, postPermlink); - } catch (e) {} + let head = await getPostHeader(author, s); if (head && !!head.category) { const noise = base58.encode(secureRandom.randomBuffer(4)).toLowerCase(); permlink = noise + '-' + s;