@tycoonsystems/tycoon-modules
Version:
www.tv.tycoon.systems/documentation
1 lines • 2.96 kB
JavaScript
function _extends(){return(_extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a,o=arguments[t];for(a in o)Object.prototype.hasOwnProperty.call(o,a)&&(e[a]=o[a])}return e}).apply(this,arguments)}import React from"react";import{useRouter}from"next/router";import{v4 as uuidv4}from"uuid";import{LoadForums,ThreadPage}from"@tycoonsystems/tycoon-modules/comment/forum";import apiReq from"@tycoonsystems/tycoon-modules/utility/api/apiReq";import{AddComment}from"@tycoonsystems/tycoon-modules/comment/parts";import{submitPost}from"@tycoonsystems/tycoon-modules/utility/utility/comment";import{checkAuth}from"@tycoonsystems/tycoon-modules/utility/utility/authorization";const Module=s=>{const{query:e,asPath:a}=useRouter(),[t,o]=React.useState(!1),[,l]=React.useState(null),[n,c]=React.useState(null),[r,m]=React.useState(!1),[i,u]=React.useState([]),[d,R]=React.useState(0),[p,y]=React.useState(null),[f,g]=React.useState(!0),h=(React.useEffect(()=>{var e;t||(e=uuidv4(),l(e),h(),o(!0))},[t]),React.useEffect(()=>{checkAuth(s,a,e,f,g,p,y)},[s._loggedIn?.identifier,s._loggedIn?.hash,f,p]),console.log(f),async()=>{var e=await apiReq("/p/getforum",{goto:a});e?.data&&c(e.data),v(e?.data?.id)}),v=async e=>{e=await apiReq("/p/loadthreads",{par:e??n?.id,parType:"forum",limit:25,offset:d});e?.data&&u(e.data)};console.log(n,i);var E=React.useCallback(e=>{m(!0)}),b=React.useCallback(e=>{m(!1)}),C=React.useCallback((e,t,a,o,l,n,c,r)=>{submitPost(e,s,t,a,o,l,null,null,n,c,r),m(!1),v()});const P=React.useCallback(e=>{e?.currentTarget?.getAttribute&&(e=e.currentTarget.getAttribute("i"),R(Number(e)),h(e*s?.limit??100))});var k=[d-2,d-1,d,d+1,d+2];return React.createElement("div",{className:s.className+" GetThread_Container"},React.createElement("div",{className:"PagePadding"},f?e?.q?React.createElement("div",null,React.createElement(ThreadPage,_extends({},s,{q:e.q}))):React.createElement("div",null,a?React.createElement("div",null,React.createElement(LoadForums,_extends({},s,{goto:a})),n&&"url"!==n?.meta?.parentType&&n?.id?React.createElement("div",null,r?React.createElement("div",{className:"Post_ReplyExternalContainer"},React.createElement(AddComment,_extends({},s,{addComment:!0,opId:n.id,opIdType:"forum",handleCancelReply:b,sub:!1,defaultWriting:!0,commentPlaceholder:"Thread...",type:"forum",handlePost:C}))):React.createElement("button",{className:"action_button",style:{marginBottom:".5rem"},onClick:E},"Create",React.createElement("div",{className:"material-icons"},"add"))):null):null,i?.map?i.map((e,t)=>React.createElement("div",{key:t},React.createElement("div",{className:"LoadForums_ThreadLinkContainer"},React.createElement("a",{href:e?.id?a+"?q="+e.id:""},e?.title)))):null,React.createElement("ul",{className:"PaginationContainer"},k.map((e,t)=>-1<e&&e>=d&&100<=i?.length?React.createElement("li",{className:e==d?"ActivePage":"",key:t,i:e,onClick:P},e+1):null))):null))};export default Module;