diff --git a/diskuy/.eslintcache b/diskuy/.eslintcache
index bfc038ad6e2477b44b5e5a8919b38f877a991840..df2c587105bcab8df0bff7e2de7817eb911859dc 100644
--- a/diskuy/.eslintcache
+++ b/diskuy/.eslintcache
@@ -1 +1 @@
-[{"F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\index.js":"1","F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\reportWebVitals.js":"2","F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\App.js":"3","F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\TopicList.js":"4","F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\RegisterForm.js":"5","F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\LoginForm.js":"6","F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\CreateTopicForm.js":"7","F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\Topic.js":"8","F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\Navbar.js":"9","F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\Search.js":"10","F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\Threads\\EditThreadForm.js":"11","F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\Threads\\ListThreads.js":"12","F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\Profile\\Profile.js":"13","F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\Threads\\Thread.js":"14","F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\services\\loggedInService.js":"15","F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\services\\api_link.js":"16","F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\services\\auth.service.js":"17","F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\services\\auth-header.js":"18","F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\hooks\\input-hook.js":"19","F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\Threads\\CommentList.js":"20","F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\Button.js":"21","F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\Threads\\Post.js":"22","F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\helpers\\time-util.js":"23","F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\Threads\\TopThreads.js":"24","F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\Threads\\PreviewThread.js":"25","F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\Threads\\RecentThreads.js":"26","F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\Threads\\CreateThread.js":"27","F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\Threads\\FormCreateThread.js":"28"},{"size":517,"mtime":1608489407339,"results":"29","hashOfConfig":"30"},{"size":375,"mtime":1608489407340,"results":"31","hashOfConfig":"30"},{"size":1609,"mtime":1610529895745,"results":"32","hashOfConfig":"30"},{"size":992,"mtime":1610376399579,"results":"33","hashOfConfig":"30"},{"size":2981,"mtime":1610376399536,"results":"34","hashOfConfig":"30"},{"size":2449,"mtime":1610376399485,"results":"35","hashOfConfig":"30"},{"size":1118,"mtime":1610508966367,"results":"36","hashOfConfig":"30"},{"size":2007,"mtime":1610448859244,"results":"37","hashOfConfig":"30"},{"size":2515,"mtime":1610529895964,"results":"38","hashOfConfig":"30"},{"size":1387,"mtime":1610448859126,"results":"39","hashOfConfig":"30"},{"size":3026,"mtime":1610392121230,"results":"40","hashOfConfig":"30"},{"size":2275,"mtime":1610450399349,"results":"41","hashOfConfig":"30"},{"size":2567,"mtime":1610529896172,"results":"42","hashOfConfig":"30"},{"size":4253,"mtime":1610529897024,"results":"43","hashOfConfig":"30"},{"size":103,"mtime":1610376399652,"results":"44","hashOfConfig":"30"},{"size":115,"mtime":1610376399606,"results":"45","hashOfConfig":"30"},{"size":1011,"mtime":1610376399638,"results":"46","hashOfConfig":"30"},{"size":209,"mtime":1610376399607,"results":"47","hashOfConfig":"30"},{"size":374,"mtime":1609624159225,"results":"48","hashOfConfig":"30"},{"size":709,"mtime":1610376399571,"results":"49","hashOfConfig":"30"},{"size":310,"mtime":1609672020693,"results":"50","hashOfConfig":"30"},{"size":3831,"mtime":1610530101322,"results":"51","hashOfConfig":"30"},{"size":1120,"mtime":1610376399581,"results":"52","hashOfConfig":"30"},{"size":1431,"mtime":1610529896674,"results":"53","hashOfConfig":"30"},{"size":721,"mtime":1610529896375,"results":"54","hashOfConfig":"30"},{"size":1389,"mtime":1610529896528,"results":"55","hashOfConfig":"30"},{"size":707,"mtime":1610518272862,"results":"56","hashOfConfig":"30"},{"size":2999,"mtime":1610522353320,"results":"57","hashOfConfig":"30"},{"filePath":"58","messages":"59","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"60"},"3m9re2",{"filePath":"61","messages":"62","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"60"},{"filePath":"63","messages":"64","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"65","messages":"66","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"60"},{"filePath":"67","messages":"68","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"60"},{"filePath":"69","messages":"70","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"60"},{"filePath":"71","messages":"72","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"73","messages":"74","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"60"},{"filePath":"75","messages":"76","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"60"},{"filePath":"77","messages":"78","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"60"},{"filePath":"79","messages":"80","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"81","usedDeprecatedRules":"60"},{"filePath":"82","messages":"83","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"60"},{"filePath":"84","messages":"85","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"60"},{"filePath":"86","messages":"87","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"88","usedDeprecatedRules":"60"},{"filePath":"89","messages":"90","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"60"},{"filePath":"91","messages":"92","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"60"},{"filePath":"93","messages":"94","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"60"},{"filePath":"95","messages":"96","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"60"},{"filePath":"97","messages":"98","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"60"},{"filePath":"99","messages":"100","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"60"},{"filePath":"101","messages":"102","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"60"},{"filePath":"103","messages":"104","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"105","messages":"106","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"60"},{"filePath":"107","messages":"108","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"60"},{"filePath":"109","messages":"110","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"111","usedDeprecatedRules":"60"},{"filePath":"112","messages":"113","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"60"},{"filePath":"114","messages":"115","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"60"},{"filePath":"116","messages":"117","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},"F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\index.js",[],["118","119"],"F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\reportWebVitals.js",[],"F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\App.js",[],"F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\TopicList.js",[],"F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\RegisterForm.js",[],"F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\LoginForm.js",[],"F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\CreateTopicForm.js",[],"F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\Topic.js",[],"F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\Navbar.js",[],"F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\Search.js",[],"F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\Threads\\EditThreadForm.js",["120","121"],"import axios from \"axios\";\r\nimport React, { useState, useEffect } from \"react\";\r\nimport { useInput } from '../hooks/input-hook';\r\nimport './EditThreadForm.css';\r\nimport authHeader from '../services/auth-header'\r\nimport { API_URL } from '../services/api_link'\r\n\r\nexport default function CreateThreadForm(props){\r\n    const { value: title, setValue: setTitle, bind: bindTitle, reset: resetTitle } = useInput('')\r\n    const { value: body, setValue: setBody, bind: bindBody, reset: resetBody } = useInput('')\r\n    const { value: topicId, setValue: setTopicId, bind: bindTopicId, reset: resetTopicId } = useInput(0)\r\n    const [listTopic, setlistTopic] = useState([]);\r\n    const [point, setPoint] = useState(0);\r\n\r\n    const threadIdParam = props.match.params.thread\r\n\r\n    useEffect(() => {\r\n        async function getListTopic() {\r\n            const allTopic = await (await axios.get(`${API_URL}/topics`)).data.data;\r\n            setlistTopic(allTopic);\r\n        }\r\n        getListTopic();\r\n    }, []);\r\n\r\n    useEffect(() => {\r\n        async function getDetailThread(threadIdParam) {\r\n            const detailThread = await (await axios.get(`${API_URL}/threads/${threadIdParam}`)).data.data;\r\n            setTitle(detailThread.title);\r\n            setBody(detailThread.content);\r\n            setTopicId(detailThread.topic_id);\r\n            setPoint(detailThread.points)\r\n        }\r\n        getDetailThread(threadIdParam);\r\n    }, [threadIdParam]);\r\n\r\n    const handleSubmit = async (event) => {\r\n        event.preventDefault();\r\n        try {\r\n            await axios.put(`${API_URL}/threads/${threadIdParam}`, {\r\n                thread: {\r\n                    content : body,\r\n                    points : point,\r\n                    title : title,\r\n                    topic_id : topicId,\r\n                }\r\n            }, \r\n            {headers: authHeader()})\r\n            const topic = await (await axios.get(`${API_URL}/topics`)).data.data.find(topic => topic.id == topicId)\r\n            props.history.push(`/topic/${topic.name}/${threadIdParam}`)\r\n        }\r\n        catch(error){\r\n            \r\n        }\r\n        resetBody(); \r\n        resetTitle();\r\n        resetTopicId();\r\n    }\r\n\r\n    return (\r\n        <form onSubmit={handleSubmit}>\r\n            <div className=\"form_container\">\r\n                <label for=\"title\">Title</label>\r\n                <input type='text' name=\"title\" placeholder=\"Your threads title\" required={false} {...bindTitle}/>\r\n                <label>Topic</label>\r\n                <select name=\"topic\" {...bindTopicId}>\r\n                    <option value=\"\"></option>\r\n                    {listTopic.map((topic) => (\r\n                        <option value={topic.id}>{topic.name}</option>\r\n                    ))}\r\n                </select>\r\n                <label for=\"body\">Body</label>\r\n                <input type='text' name=\"body\" placeholder=\"Tulis\" required={false} {...bindBody}/>\r\n                <input type=\"submit\" value=\"Submit\"/>\r\n            </div>\r\n        </form>\r\n    )\r\n}\r\n","F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\Threads\\ListThreads.js",[],"F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\Profile\\Profile.js",[],"F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\Threads\\Thread.js",["122","123","124"],"import React, { useState, useEffect, useCallback } from \"react\";\r\nimport './Thread.css';\r\nimport CommentList from './CommentList';\r\nimport Post from './Post';\r\nimport { useInput } from '../hooks/input-hook';\r\nimport axios from 'axios';\r\nimport { loggedIn } from '../services/loggedInService'\r\nimport authHeader from '../services/auth-header'\r\nimport { API_URL } from '../services/api_link'\r\nimport AuthService from '../services/auth.service'\r\n\r\n\r\nexport default function Thread(props){\r\n    const currentUserId = AuthService.getCurrentUser().id\r\n    const [isUsersThread, setIsUsersThread] = useState(0);\r\n    const redirect = () => {\r\n        props.history.push(`/topic/${topicParm}`)\r\n    }\r\n\r\n    const [thread, setThread] = useState({\r\n        content : \"\",\r\n        id:\"\",\r\n        points:0,\r\n        title:\"\",\r\n        topic_id:\"\",\r\n        user_id:\"\",\r\n        updated_at: \"\",\r\n        username:\"\"\r\n    });\r\n\r\n    const [comment, setComment] = useState([{\r\n        id: \"\",\r\n        message : \"\",\r\n        points: 0,\r\n        thread_id: \"\",\r\n        user_id:\"\",\r\n        updated_at: \"\",\r\n        username:\"\"\r\n    }]);\r\n\r\n    const { value: input, bind: bindInput, reset: resetInput } = useInput('');\r\n    const topicParm = props.match.params.topic;\r\n    const threadParm = props.match.params.thread;\r\n\r\n    \r\n    const back = () => {\r\n        props.history.goBack();\r\n    }\r\n\r\n    const refreshComment = useCallback(() => {\r\n        const fetch = async () => {\r\n            const responseComment = await axios.get(`${API_URL}/post/`);\r\n            const responseCommentData = responseComment.data.data.filter(comments => comments.thread_id == threadParm);\r\n            setComment(responseCommentData);\r\n        }\r\n        fetch();\r\n    }, [threadParm]);\r\n\r\n    useEffect(() => {\r\n        const fetch = async () => {\r\n            const responseThread = await axios.get(`${API_URL}/threads/${threadParm}`);\r\n            const responseThreadData = responseThread.data.data;\r\n            setThread(responseThreadData);\r\n            refreshComment();\r\n\r\n            if(responseThreadData.user_id == currentUserId) {\r\n                setIsUsersThread(1)\r\n            }\r\n        }\r\n        fetch();\r\n    }, [threadParm, refreshComment, currentUserId]);\r\n\r\n    const handleSubmit = async (event) => {\r\n        event.preventDefault();\r\n\r\n        try {\r\n            await axios.post(`${API_URL}/post`, {\r\n                post : {\r\n                    message : input,\r\n                    points : 0,\r\n                    thread_id : threadParm,\r\n                    user_id : localStorage.getItem('id')\r\n                }\r\n            },\r\n            {headers: authHeader()})\r\n            refreshComment();\r\n        } catch (error) {}\r\n        resetInput();\r\n    };\r\n\r\n\r\n    return (\r\n        <div className=\"threadContainer\">\r\n            <div className=\"back\" onClick={back}>\r\n                <h5>Back</h5> \r\n            </div>\r\n            <div className=\"thread_section\">\r\n                <Post \r\n                    type=\"thread\"\r\n                    text={thread.content} \r\n                    header={thread.title} \r\n                    user={thread.username}\r\n                    points={thread.points}\r\n                    id={thread.id}\r\n                    user_id={thread.user_id}\r\n                    thread_id={thread.thread_id}\r\n                    topic_id={thread.topic_id}\r\n                    time={thread.inserted_at}\r\n                    redirect={redirect}\r\n                    isUsersThread = {isUsersThread}\r\n                />\r\n            </div>\r\n            \r\n            {loggedIn && (\r\n                <div id=\"addCommentSection\">\r\n                    <h3>Write a Comment</h3>\r\n                    <form onSubmit={handleSubmit}>\r\n                        <textarea className=\"commentBox\" placeholder=\"Write your comment here\" required=\"false\" {...bindInput}/>\r\n                        <button className=\"submitComment\" id=\"addCommentButton\" type=\"submit\">Add Comment</button>\r\n                    </form>\r\n                </div>\r\n            )}\r\n            <h2 className='commentText'>Comments</h2>\r\n            <CommentList comment={comment} thread_id={threadParm} topic_id={topicParm}></CommentList>\r\n        </div>\r\n    )\r\n}","F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\services\\loggedInService.js",[],"F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\services\\api_link.js",[],"F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\services\\auth.service.js",[],"F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\services\\auth-header.js",[],"F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\hooks\\input-hook.js",[],"F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\Threads\\CommentList.js",[],"F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\Button.js",[],"F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\Threads\\Post.js",["125"],"F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\helpers\\time-util.js",[],"F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\Threads\\TopThreads.js",[],"F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\Threads\\PreviewThread.js",["126"],"import './PreviewThread.css';\r\nimport { tConvert, translate } from '../helpers/time-util'\r\n\r\n\r\nexport default function ThreadList(props){\r\n    const time = translate(props.time)\r\n    return (\r\n        <div id=\"threadCard\">\r\n            <div id=\"threadCardHeader\">\r\n                <h2 id=\"judul\"><b>{props.header}</b></h2>\r\n            </div>\r\n            <p id=\"topic\">{props.topic}</p>\r\n            <div id=\"threadCardContent\">\r\n                <p>By {props.user} - {time} - <i class=\"far fa-thumbs-up\"></i> {props.points}</p>\r\n            </div>\r\n        </div>\r\n    )\r\n}","F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\Threads\\RecentThreads.js",[],"F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\Threads\\CreateThread.js",[],"F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\Threads\\FormCreateThread.js",["127","128"],{"ruleId":"129","replacedBy":"130"},{"ruleId":"131","replacedBy":"132"},{"ruleId":"133","severity":1,"message":"134","line":34,"column":8,"nodeType":"135","endLine":34,"endColumn":23,"suggestions":"136"},{"ruleId":"137","severity":1,"message":"138","line":48,"column":105,"nodeType":"139","messageId":"140","endLine":48,"endColumn":107},{"ruleId":"137","severity":1,"message":"138","line":53,"column":105,"nodeType":"139","messageId":"140","endLine":53,"endColumn":107},{"ruleId":"137","severity":1,"message":"138","line":66,"column":43,"nodeType":"139","messageId":"140","endLine":66,"endColumn":45},{"ruleId":"133","severity":1,"message":"141","line":71,"column":8,"nodeType":"135","endLine":71,"endColumn":36,"suggestions":"142"},{"ruleId":"143","severity":1,"message":"144","line":3,"column":8,"nodeType":"145","messageId":"146","endLine":3,"endColumn":19},{"ruleId":"143","severity":1,"message":"147","line":2,"column":10,"nodeType":"145","messageId":"146","endLine":2,"endColumn":18},{"ruleId":"143","severity":1,"message":"148","line":36,"column":19,"nodeType":"145","messageId":"146","endLine":36,"endColumn":24},{"ruleId":"137","severity":1,"message":"138","line":36,"column":105,"nodeType":"139","messageId":"140","endLine":36,"endColumn":107},"no-native-reassign",["149"],"no-negated-in-lhs",["150"],"react-hooks/exhaustive-deps","React Hook useEffect has missing dependencies: 'setBody', 'setTitle', and 'setTopicId'. Either include them or remove the dependency array.","ArrayExpression",["151"],"eqeqeq","Expected '===' and instead saw '=='.","BinaryExpression","unexpected","React Hook useEffect has a missing dependency: 'currentUserId'. Either include it or remove the dependency array.",["152"],"no-unused-vars","'AuthService' is defined but never used.","Identifier","unusedVar","'tConvert' is defined but never used.","'topic' is assigned a value but never used.","no-global-assign","no-unsafe-negation",{"desc":"153","fix":"154"},{"desc":"155","fix":"156"},"Update the dependencies array to be: [setBody, setTitle, setTopicId, threadIdParam]",{"range":"157","text":"158"},"Update the dependencies array to be: [threadParm, refreshComment, currentUserId]",{"range":"159","text":"160"},[1429,1444],"[setBody, setTitle, setTopicId, threadIdParam]",[2206,2234],"[threadParm, refreshComment, currentUserId]"]
\ No newline at end of file
+[{"F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\index.js":"1","F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\reportWebVitals.js":"2","F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\App.js":"3","F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\TopicList.js":"4","F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\RegisterForm.js":"5","F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\LoginForm.js":"6","F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\CreateTopicForm.js":"7","F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\Topic.js":"8","F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\Navbar.js":"9","F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\Search.js":"10","F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\Threads\\EditThreadForm.js":"11","F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\Threads\\ListThreads.js":"12","F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\Profile\\Profile.js":"13","F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\Threads\\Thread.js":"14","F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\services\\loggedInService.js":"15","F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\services\\api_link.js":"16","F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\services\\auth.service.js":"17","F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\services\\auth-header.js":"18","F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\hooks\\input-hook.js":"19","F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\Threads\\CommentList.js":"20","F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\Button.js":"21","F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\Threads\\Post.js":"22","F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\helpers\\time-util.js":"23","F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\Threads\\TopThreads.js":"24","F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\Threads\\PreviewThread.js":"25","F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\Threads\\RecentThreads.js":"26","F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\Threads\\CreateThread.js":"27","F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\Threads\\FormCreateThread.js":"28"},{"size":517,"mtime":1608489407339,"results":"29","hashOfConfig":"30"},{"size":375,"mtime":1608489407340,"results":"31","hashOfConfig":"30"},{"size":1609,"mtime":1610529895745,"results":"32","hashOfConfig":"30"},{"size":992,"mtime":1610376399579,"results":"33","hashOfConfig":"30"},{"size":2981,"mtime":1610376399536,"results":"34","hashOfConfig":"30"},{"size":2449,"mtime":1610376399485,"results":"35","hashOfConfig":"30"},{"size":1118,"mtime":1610508966367,"results":"36","hashOfConfig":"30"},{"size":2007,"mtime":1610448859244,"results":"37","hashOfConfig":"30"},{"size":2515,"mtime":1610529895964,"results":"38","hashOfConfig":"30"},{"size":1387,"mtime":1610448859126,"results":"39","hashOfConfig":"30"},{"size":3026,"mtime":1610392121230,"results":"40","hashOfConfig":"30"},{"size":2275,"mtime":1610450399349,"results":"41","hashOfConfig":"30"},{"size":2567,"mtime":1610529896172,"results":"42","hashOfConfig":"30"},{"size":4253,"mtime":1610529897024,"results":"43","hashOfConfig":"30"},{"size":103,"mtime":1610376399652,"results":"44","hashOfConfig":"30"},{"size":115,"mtime":1610376399606,"results":"45","hashOfConfig":"30"},{"size":1011,"mtime":1610376399638,"results":"46","hashOfConfig":"30"},{"size":209,"mtime":1610376399607,"results":"47","hashOfConfig":"30"},{"size":374,"mtime":1609624159225,"results":"48","hashOfConfig":"30"},{"size":709,"mtime":1610376399571,"results":"49","hashOfConfig":"30"},{"size":310,"mtime":1609672020693,"results":"50","hashOfConfig":"30"},{"size":3724,"mtime":1610530203004,"results":"51","hashOfConfig":"30"},{"size":1120,"mtime":1610376399581,"results":"52","hashOfConfig":"30"},{"size":1431,"mtime":1610529896674,"results":"53","hashOfConfig":"30"},{"size":721,"mtime":1610529896375,"results":"54","hashOfConfig":"30"},{"size":1389,"mtime":1610529896528,"results":"55","hashOfConfig":"30"},{"size":707,"mtime":1610518272862,"results":"56","hashOfConfig":"30"},{"size":2999,"mtime":1610522353320,"results":"57","hashOfConfig":"30"},{"filePath":"58","messages":"59","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"60"},"3m9re2",{"filePath":"61","messages":"62","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"60"},{"filePath":"63","messages":"64","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"65","messages":"66","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"60"},{"filePath":"67","messages":"68","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"60"},{"filePath":"69","messages":"70","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"60"},{"filePath":"71","messages":"72","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"73","messages":"74","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"60"},{"filePath":"75","messages":"76","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"60"},{"filePath":"77","messages":"78","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"60"},{"filePath":"79","messages":"80","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"81","usedDeprecatedRules":"60"},{"filePath":"82","messages":"83","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"60"},{"filePath":"84","messages":"85","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"60"},{"filePath":"86","messages":"87","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"88","usedDeprecatedRules":"60"},{"filePath":"89","messages":"90","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"60"},{"filePath":"91","messages":"92","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"60"},{"filePath":"93","messages":"94","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"60"},{"filePath":"95","messages":"96","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"60"},{"filePath":"97","messages":"98","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"60"},{"filePath":"99","messages":"100","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"60"},{"filePath":"101","messages":"102","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"60"},{"filePath":"103","messages":"104","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"105","messages":"106","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"60"},{"filePath":"107","messages":"108","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"60"},{"filePath":"109","messages":"110","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"111","usedDeprecatedRules":"60"},{"filePath":"112","messages":"113","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"60"},{"filePath":"114","messages":"115","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"60"},{"filePath":"116","messages":"117","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},"F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\index.js",[],["118","119"],"F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\reportWebVitals.js",[],"F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\App.js",[],"F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\TopicList.js",[],"F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\RegisterForm.js",[],"F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\LoginForm.js",[],"F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\CreateTopicForm.js",[],"F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\Topic.js",[],"F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\Navbar.js",[],"F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\Search.js",[],"F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\Threads\\EditThreadForm.js",["120","121"],"import axios from \"axios\";\r\nimport React, { useState, useEffect } from \"react\";\r\nimport { useInput } from '../hooks/input-hook';\r\nimport './EditThreadForm.css';\r\nimport authHeader from '../services/auth-header'\r\nimport { API_URL } from '../services/api_link'\r\n\r\nexport default function CreateThreadForm(props){\r\n    const { value: title, setValue: setTitle, bind: bindTitle, reset: resetTitle } = useInput('')\r\n    const { value: body, setValue: setBody, bind: bindBody, reset: resetBody } = useInput('')\r\n    const { value: topicId, setValue: setTopicId, bind: bindTopicId, reset: resetTopicId } = useInput(0)\r\n    const [listTopic, setlistTopic] = useState([]);\r\n    const [point, setPoint] = useState(0);\r\n\r\n    const threadIdParam = props.match.params.thread\r\n\r\n    useEffect(() => {\r\n        async function getListTopic() {\r\n            const allTopic = await (await axios.get(`${API_URL}/topics`)).data.data;\r\n            setlistTopic(allTopic);\r\n        }\r\n        getListTopic();\r\n    }, []);\r\n\r\n    useEffect(() => {\r\n        async function getDetailThread(threadIdParam) {\r\n            const detailThread = await (await axios.get(`${API_URL}/threads/${threadIdParam}`)).data.data;\r\n            setTitle(detailThread.title);\r\n            setBody(detailThread.content);\r\n            setTopicId(detailThread.topic_id);\r\n            setPoint(detailThread.points)\r\n        }\r\n        getDetailThread(threadIdParam);\r\n    }, [threadIdParam]);\r\n\r\n    const handleSubmit = async (event) => {\r\n        event.preventDefault();\r\n        try {\r\n            await axios.put(`${API_URL}/threads/${threadIdParam}`, {\r\n                thread: {\r\n                    content : body,\r\n                    points : point,\r\n                    title : title,\r\n                    topic_id : topicId,\r\n                }\r\n            }, \r\n            {headers: authHeader()})\r\n            const topic = await (await axios.get(`${API_URL}/topics`)).data.data.find(topic => topic.id == topicId)\r\n            props.history.push(`/topic/${topic.name}/${threadIdParam}`)\r\n        }\r\n        catch(error){\r\n            \r\n        }\r\n        resetBody(); \r\n        resetTitle();\r\n        resetTopicId();\r\n    }\r\n\r\n    return (\r\n        <form onSubmit={handleSubmit}>\r\n            <div className=\"form_container\">\r\n                <label for=\"title\">Title</label>\r\n                <input type='text' name=\"title\" placeholder=\"Your threads title\" required={false} {...bindTitle}/>\r\n                <label>Topic</label>\r\n                <select name=\"topic\" {...bindTopicId}>\r\n                    <option value=\"\"></option>\r\n                    {listTopic.map((topic) => (\r\n                        <option value={topic.id}>{topic.name}</option>\r\n                    ))}\r\n                </select>\r\n                <label for=\"body\">Body</label>\r\n                <input type='text' name=\"body\" placeholder=\"Tulis\" required={false} {...bindBody}/>\r\n                <input type=\"submit\" value=\"Submit\"/>\r\n            </div>\r\n        </form>\r\n    )\r\n}\r\n","F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\Threads\\ListThreads.js",[],"F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\Profile\\Profile.js",[],"F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\Threads\\Thread.js",["122","123","124"],"import React, { useState, useEffect, useCallback } from \"react\";\r\nimport './Thread.css';\r\nimport CommentList from './CommentList';\r\nimport Post from './Post';\r\nimport { useInput } from '../hooks/input-hook';\r\nimport axios from 'axios';\r\nimport { loggedIn } from '../services/loggedInService'\r\nimport authHeader from '../services/auth-header'\r\nimport { API_URL } from '../services/api_link'\r\nimport AuthService from '../services/auth.service'\r\n\r\n\r\nexport default function Thread(props){\r\n    const currentUserId = AuthService.getCurrentUser().id\r\n    const [isUsersThread, setIsUsersThread] = useState(0);\r\n    const redirect = () => {\r\n        props.history.push(`/topic/${topicParm}`)\r\n    }\r\n\r\n    const [thread, setThread] = useState({\r\n        content : \"\",\r\n        id:\"\",\r\n        points:0,\r\n        title:\"\",\r\n        topic_id:\"\",\r\n        user_id:\"\",\r\n        updated_at: \"\",\r\n        username:\"\"\r\n    });\r\n\r\n    const [comment, setComment] = useState([{\r\n        id: \"\",\r\n        message : \"\",\r\n        points: 0,\r\n        thread_id: \"\",\r\n        user_id:\"\",\r\n        updated_at: \"\",\r\n        username:\"\"\r\n    }]);\r\n\r\n    const { value: input, bind: bindInput, reset: resetInput } = useInput('');\r\n    const topicParm = props.match.params.topic;\r\n    const threadParm = props.match.params.thread;\r\n\r\n    \r\n    const back = () => {\r\n        props.history.goBack();\r\n    }\r\n\r\n    const refreshComment = useCallback(() => {\r\n        const fetch = async () => {\r\n            const responseComment = await axios.get(`${API_URL}/post/`);\r\n            const responseCommentData = responseComment.data.data.filter(comments => comments.thread_id == threadParm);\r\n            setComment(responseCommentData);\r\n        }\r\n        fetch();\r\n    }, [threadParm]);\r\n\r\n    useEffect(() => {\r\n        const fetch = async () => {\r\n            const responseThread = await axios.get(`${API_URL}/threads/${threadParm}`);\r\n            const responseThreadData = responseThread.data.data;\r\n            setThread(responseThreadData);\r\n            refreshComment();\r\n\r\n            if(responseThreadData.user_id == currentUserId) {\r\n                setIsUsersThread(1)\r\n            }\r\n        }\r\n        fetch();\r\n    }, [threadParm, refreshComment, currentUserId]);\r\n\r\n    const handleSubmit = async (event) => {\r\n        event.preventDefault();\r\n\r\n        try {\r\n            await axios.post(`${API_URL}/post`, {\r\n                post : {\r\n                    message : input,\r\n                    points : 0,\r\n                    thread_id : threadParm,\r\n                    user_id : localStorage.getItem('id')\r\n                }\r\n            },\r\n            {headers: authHeader()})\r\n            refreshComment();\r\n        } catch (error) {}\r\n        resetInput();\r\n    };\r\n\r\n\r\n    return (\r\n        <div className=\"threadContainer\">\r\n            <div className=\"back\" onClick={back}>\r\n                <h5>Back</h5> \r\n            </div>\r\n            <div className=\"thread_section\">\r\n                <Post \r\n                    type=\"thread\"\r\n                    text={thread.content} \r\n                    header={thread.title} \r\n                    user={thread.username}\r\n                    points={thread.points}\r\n                    id={thread.id}\r\n                    user_id={thread.user_id}\r\n                    thread_id={thread.thread_id}\r\n                    topic_id={thread.topic_id}\r\n                    time={thread.inserted_at}\r\n                    redirect={redirect}\r\n                    isUsersThread = {isUsersThread}\r\n                />\r\n            </div>\r\n            \r\n            {loggedIn && (\r\n                <div id=\"addCommentSection\">\r\n                    <h3>Write a Comment</h3>\r\n                    <form onSubmit={handleSubmit}>\r\n                        <textarea className=\"commentBox\" placeholder=\"Write your comment here\" required=\"false\" {...bindInput}/>\r\n                        <button className=\"submitComment\" id=\"addCommentButton\" type=\"submit\">Add Comment</button>\r\n                    </form>\r\n                </div>\r\n            )}\r\n            <h2 className='commentText'>Comments</h2>\r\n            <CommentList comment={comment} thread_id={threadParm} topic_id={topicParm}></CommentList>\r\n        </div>\r\n    )\r\n}","F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\services\\loggedInService.js",[],"F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\services\\api_link.js",[],"F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\services\\auth.service.js",[],"F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\services\\auth-header.js",[],"F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\hooks\\input-hook.js",[],"F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\Threads\\CommentList.js",[],"F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\Button.js",[],"F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\Threads\\Post.js",["125"],"F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\helpers\\time-util.js",[],"F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\Threads\\TopThreads.js",[],"F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\Threads\\PreviewThread.js",["126"],"import './PreviewThread.css';\r\nimport { tConvert, translate } from '../helpers/time-util'\r\n\r\n\r\nexport default function ThreadList(props){\r\n    const time = translate(props.time)\r\n    return (\r\n        <div id=\"threadCard\">\r\n            <div id=\"threadCardHeader\">\r\n                <h2 id=\"judul\"><b>{props.header}</b></h2>\r\n            </div>\r\n            <p id=\"topic\">{props.topic}</p>\r\n            <div id=\"threadCardContent\">\r\n                <p>By {props.user} - {time} - <i class=\"far fa-thumbs-up\"></i> {props.points}</p>\r\n            </div>\r\n        </div>\r\n    )\r\n}","F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\Threads\\RecentThreads.js",[],"F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\Threads\\CreateThread.js",[],"F:\\Jonathan\\Kuliah\\Pemfung\\diskuy\\diskuy\\src\\Threads\\FormCreateThread.js",["127","128"],{"ruleId":"129","replacedBy":"130"},{"ruleId":"131","replacedBy":"132"},{"ruleId":"133","severity":1,"message":"134","line":34,"column":8,"nodeType":"135","endLine":34,"endColumn":23,"suggestions":"136"},{"ruleId":"137","severity":1,"message":"138","line":48,"column":105,"nodeType":"139","messageId":"140","endLine":48,"endColumn":107},{"ruleId":"137","severity":1,"message":"138","line":53,"column":105,"nodeType":"139","messageId":"140","endLine":53,"endColumn":107},{"ruleId":"137","severity":1,"message":"138","line":66,"column":43,"nodeType":"139","messageId":"140","endLine":66,"endColumn":45},{"ruleId":"133","severity":1,"message":"141","line":71,"column":8,"nodeType":"135","endLine":71,"endColumn":36,"suggestions":"142"},{"ruleId":"143","severity":1,"message":"144","line":3,"column":8,"nodeType":"145","messageId":"146","endLine":3,"endColumn":19},{"ruleId":"143","severity":1,"message":"147","line":2,"column":10,"nodeType":"145","messageId":"146","endLine":2,"endColumn":18},{"ruleId":"143","severity":1,"message":"148","line":36,"column":19,"nodeType":"145","messageId":"146","endLine":36,"endColumn":24},{"ruleId":"137","severity":1,"message":"138","line":36,"column":105,"nodeType":"139","messageId":"140","endLine":36,"endColumn":107},"no-native-reassign",["149"],"no-negated-in-lhs",["150"],"react-hooks/exhaustive-deps","React Hook useEffect has missing dependencies: 'setBody', 'setTitle', and 'setTopicId'. Either include them or remove the dependency array.","ArrayExpression",["151"],"eqeqeq","Expected '===' and instead saw '=='.","BinaryExpression","unexpected","React Hook useEffect has a missing dependency: 'currentUserId'. Either include it or remove the dependency array.",["152"],"no-unused-vars","'AuthService' is defined but never used.","Identifier","unusedVar","'tConvert' is defined but never used.","'topic' is assigned a value but never used.","no-global-assign","no-unsafe-negation",{"desc":"153","fix":"154"},{"desc":"155","fix":"156"},"Update the dependencies array to be: [setBody, setTitle, setTopicId, threadIdParam]",{"range":"157","text":"158"},"Update the dependencies array to be: [threadParm, refreshComment, currentUserId]",{"range":"159","text":"160"},[1429,1444],"[setBody, setTitle, setTopicId, threadIdParam]",[2206,2234],"[threadParm, refreshComment, currentUserId]"]
\ No newline at end of file
diff --git a/diskuy/src/Threads/Post.js b/diskuy/src/Threads/Post.js
index 8d53eb8898fe7198b1b80a56a48e698e947870e7..0f3ee9720d77380ad73cf3f5cb9801b7aa4aee1e 100644
--- a/diskuy/src/Threads/Post.js
+++ b/diskuy/src/Threads/Post.js
@@ -60,11 +60,7 @@ export default function Post(props){
                 <div id="headerData">
                     <i class="far fa-user-circle"></i>
                     <div className="creator">
-                        <p>By 
-                        <Link to={`/profile/${props.user_id}`}>
-                            {props.user}
-                        </Link>
-                         - {time} </p>
+                        <p>By  <Link to={`/profile/${props.user_id}`}>{props.user}</Link> - {time} </p>
                     </div>
                 </div>