UNPKG

@nexusui/components

Version:

These are custom components specially-developed for NexusUI applications. They will make your life easier by giving you out-of-the-box implementations for various high-level UI elements that you can drop directly into your application.

3 lines (2 loc) 2.34 kB
"use client"; "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react"),n=require("./CommentDrawer.component.js"),o=require("./CommentReplyDrawer.component.js"),r=require("./CommentFilterDrawer.component.js");exports.CommentDrawerContainer=i=>{const{loading:s,currentUser:m,comments:l=[],filterOptions:a,selectedFilterOptions:C,sortOptions:d,selectedSortOption:c,onFilterChanged:p,onPinFilterChanged:h,onSortChanged:g,selectedTagsFilter:u,tagsFilterOptions:F,onTagsFilterChanged:f,selectedCommentAuthorFilter:x,commentAuthorFilterOptions:O,onCommentAuthorFilterChanged:T,filterExtension:w,onFilterReset:A,selectedCommentId:j,onCommentClick:S,onCommentAdd:R,onCommentSearch:y,onReplyAdd:D,emptyStateProps:q,filterChanged:E,commentsTotal:P=0,mode:$="plaintext",richTextConfig:k,...N}=i,v={open:!0,variant:"persistent",anchor:"right"},[U,b]=t.useState(!1),[I,L]=t.useState(""),M=t.useCallback((e=>{y?.(e),L(e)}),[y]),_=t.useMemo((()=>{if(!I||y)return l;const e="richtext"===$?new RegExp(`"text":"[^"]*${I}[^"]*"`,"i"):new RegExp(I,"i");return l.filter((t=>{const n=[t.message],o=[`${t.author.firstName} ${t.author.lastName}`];return t.replies&&t.replies.length>0&&t.replies.forEach((e=>{n.push(e.message),o.push(`${e.author.firstName} ${e.author.lastName}`)})),e.test(n.join(" "))||o.join(" ").toLowerCase().includes(I.toLowerCase())}))}),[l,$,y,I]),z=_.find((e=>e.id===j&&e.replies&&e.replies.length>0));return U?e.jsx(r.CommentFilterDrawerComponent,{...v,filterOptions:a,selectedFilterOptions:C,onFilterChanged:p,onPinFilterChanged:h,sortOptions:d,selectedSortOption:c,onSortChanged:g,selectedTagsFilter:u,tagsFilterOptions:F,onTagsFilterChanged:f,selectedCommentAuthorFilter:x,commentAuthorFilterOptions:O,onCommentAuthorFilterChanged:T,onFilterClose:()=>{b(!1)},filterExtension:w,onFilterReset:A,filteredCommentsCount:_.length,commentsTotal:P||l.length,mode:$,...N}):z&&!s?e.jsx(o.CommentReplyDrawerComponent,{...v,currentUser:m,comment:z,onCommentClick:S,onReplyAdd:D,mode:$,richTextConfig:k,searchTerm:I,...N}):e.jsx(n.CommentDrawerComponent,{...v,loading:s,currentUser:m,comments:_,selectedCommentId:j,onCommentClick:S,onCommentAdd:R,onReplyAdd:D,onCommentSearch:M,filterChanged:E,onFilterToggle:()=>{b(!U)},searchTerm:I,emptyStateProps:q,mode:$,richTextConfig:k,...N})};