| 6 | "": "// Cheddar.Forum\\\\nconst promise = new Promise((resolve, reject) => {\\\\n setTimeout(() => {\\\\n resolve([])\\\\n }, 1)\\\\n})\\\\nconst { getConfig } = VM.require(\\\\n \\\\\\'chatter.cheddar.near/widget/config.CommunityVoice\\\\\\'\\\\n) || { getConfig: () => {} }\\\\nconst { getArticles, deleteArticle } = VM.require(\\\\n \\\\\\'chatter.cheddar.near/widget/lib.article\\\\\\'\\\\n) || { deleteArticle: () => {} }\\\\n\\\\n\\\\nif(typeof getArticles !== \\\\\\\"function\\\\\\\"){\\\\n return <></>\\\\n}\\\\n\\\\n//===============================================INITIALIZATION=====================================================\\\\nlet {\\\\n isTest,\\\\n accountId,\\\\n authorForWidget,\\\\n widgets,\\\\n brand,\\\\n baseActions,\\\\n kanbanColumns,\\\\n kanbanRequiredTags,\\\\n kanbanExcludedTags,\\\\n handleChangeCategory,\\\\n categories,\\\\n category,\\\\n sharedData,\\\\n} = props\\\\n\\\\nconst [searchInputValue, setSearchInputValue] = useState(\\\\\\'\\\\\\')\\\\n\\\\naccountId = context.accountId\\\\n\\\\nfunction getInitialFilter() {\\\\n if (sharedData.sharedBlockheight) {\\\\n return {\\\\n parameterName: \\\\\\'getPost\\\\\\',\\\\n parameterValue: sharedData.sharedBlockheight,\\\\n }\\\\n } else if (sharedData.sharedTag) {\\\\n return {\\\\n parameterName: \\\\\\'tag\\\\\\',\\\\n parameterValue: sharedData.sharedTag,\\\\n }\\\\n } else if (authorShared) {\\\\n return {\\\\n parameterName: \\\\\\'author\\\\\\',\\\\n parameterValue: authorShared,\\\\n }\\\\n } else if (sharedData.sharedArticleId) {\\\\n return {\\\\n parameterName: \\\\\\'articleId\\\\\\',\\\\n parameterValue: sharedData.sharedArticleId,\\\\n }\\\\n } else {\\\\n return {\\\\n parameterName: \\\\\\'\\\\\\',\\\\n }\\\\n }\\\\n}\\\\n\\\\nconst [articlesToRender, setArticlesToRender] = useState([])\\\\nconst [showShareModal, setShowShareModal] = useState(false)\\\\nconst [sharedElement, setSharedElement] = useState(undefined)\\\\nconst [showShareSearchModal, setShowShareSearchModal] = useState(false)\\\\nconst [sharingSearch, setSharingSearch] = useState(false)\\\\nconst [linkCopied, setLinkCopied] = useState(false)\\\\nconst [filterBy, setFilterBy] = useState(getInitialFilter())\\\\nconst [loadingArticles, setLoadingArticles] = useState(true)\\\\n\\\\nfunction loadArticles(category) {\\\\n const userFilters = { category: category }\\\\n console.log(\\\\\\'Reloading categories\\\\\\', category)\\\\n getArticles(getConfig(isTest), userFilters).then((newArticles) => {\\\\n setArticlesToRender(newArticles)\\\\n setLoadingArticles(false)\\\\n })\\\\n}\\\\nloadArticles(category)\\\\nuseEffect(() => {\\\\n setLoadingArticles(true)\\\\n}, [category])\\\\n\\\\naccountId = context.accountId\\\\n\\\\nconst tabs = {\\\\n SHOW_ARTICLES_LIST: { id: 0 },\\\\n SHOW_ARTICLE: { id: 1 },\\\\n ARTICLE_WORKSHOP: { id: 2 },\\\\n SHOW_ARTICLES_LIST_BY_AUTHORS: { id: 3 },\\\\n //SHOW_KANBAN_VIEW: { id: 4 },\\\\n}\\\\n\\\\nfunction getInitialTabId() {\\\\n if (sharedData.sharedBlockheight || sharedData.sharedArticleId) {\\\\n return tabs.SHOW_ARTICLE.id\\\\n } else {\\\\n return tabs.SHOW_ARTICLES_LIST.id\\\\n }\\\\n}\\\\n\\\\nState.init({\\\\n displayedTabId: getInitialTabId(),\\\\n articleToRenderData: {},\\\\n authorsProfiles: [],\\\\n firstRender:\\\\n !isNaN(sharedData.sharedBlockheight) ||\\\\n typeof sharedData.sharedArticleId === \\\\\\'string\\\\\\',\\\\n})\\\\n\\\\n//=============================================END INITIALIZATION===================================================\\\\n\\\\n//==================================================CONSTS==========================================================\\\\n\\\\nconst profile = props.profile ?? Social.getr(`${accountId}/profile`)\\\\n\\\\nif (profile === null) {\\\\n return \\\\\\'Loading\\\\\\'\\\\n}\\\\n\\\\nlet authorProfile = {}\\\\nif (filterBy.parameterName == \\\\\\'author\\\\\\') {\\\\n authorProfile = Social.getr(`${filterBy.parameterValue}/profile`)\\\\n}\\\\n\\\\nconst navigationPills = [\\\\n { id: tabs.SHOW_ARTICLES_LIST.id, title: \\\\\\'Articles\\\\\\' },\\\\n { id: tabs.SHOW_ARTICLES_LIST_BY_AUTHORS.id, title: \\\\\\'Authors\\\\\\' },\\\\n // { id: tabs.SHOW_KANBAN_VIEW.id, title: \\\\\\\"Kanban\\\\\\\" },\\\\n]\\\\n\\\\nconst navigationButtons = [\\\\n // { id: tabs.ARTICLE_WORKSHOP.id, title: \\\\\\\"+Create article\\\\\\\" },\\\\n]\\\\n\\\\nconst initialBodyAtCreation = state.editArticleData.value.articleData.body\\\\n\\\\n//=================================================END CONSTS=======================================================\\\\n\\\\n//=================================================GET DATA=========================================================\\\\nconst finalArticles = state.articles\\\\n\\\\nfunction filterArticlesByTag(tag, articles) {\\\\n return articles.filter((article) => {\\\\n return article.value.articleData.tags.includes(tag)\\\\n })\\\\n}\\\\n\\\\nfunction filterArticlesByAuthor(author, articles) {\\\\n return articles.filter((article) => {\\\\n return article.value.metadata.author === author\\\\n })\\\\n}\\\\n\\\\nfunction filterOnePostByBlockHeight(blockHeight, articles) {\\\\n if (articles) {\\\\n return articles.filter((article) => article.blockHeight === blockHeight)\\\\n } else {\\\\n return []\\\\n }\\\\n}\\\\n\\\\nfunction filterOnePostByArticleId(articleId, articles) {\\\\n if (articles) {\\\\n return articles.filter(\\\\n (article) => article.value.metadata.id === articleId\\\\n )\\\\n } else {\\\\n return []\\\\n }\\\\n}\\\\n\\\\nif (filterBy.parameterName === \\\\\\'tag\\\\\\') {\\\\n setArticlesToRender(\\\\n filterArticlesByTag(filterBy.parameterValue, articlesToRender)\\\\n )\\\\n} else if (filterBy.parameterName === \\\\\\'author\\\\\\') {\\\\n setArticlesToRender(\\\\n filterArticlesByAuthor(filterBy.parameterValue, articlesToRender)\\\\n )\\\\n} else if (filterBy.parameterName === \\\\\\'getPost\\\\\\') {\\\\n setArticlesToRender(\\\\n filterOnePostByBlockHeight(filterBy.parameterValue, articlesToRender)\\\\n )\\\\n\\\\n if (articlesToRender.length > 0) {\\\\n State.update({ articleToRenderData: articlesToRender[0] })\\\\n }\\\\n} else if (filterBy.parameterName === \\\\\\'articleId\\\\\\') {\\\\n setArticlesToRender(\\\\n filterOnePostByArticleId(filterBy.parameterValue, articlesToRender)\\\\n )\\\\n if (articlesToRender.length > 0) {\\\\n State.update({ articleToRenderData: articlesToRender[0] })\\\\n }\\\\n}\\\\n//===============================================END GET DATA=======================================================\\\\n\\\\n//=============================================STYLED COMPONENTS====================================================\\\\nconst data = fetch(`https://httpbin.org/headers`)\\\\nconst gatewayURL = data?.body?.headers?.Origin ?? \\\\\\'\\\\\\'\\\\n\\\\nconst AppContainer = gatewayURL.includes(\\\\\\'near.org\\\\\\')\\\\n ? styled.div`\\\\n width: 100%;\\\\n `\\\\n : styled.div`\\\\n position: fixed;\\\\n inset: 73px 0px 0px;\\\\n width: 100%;\\\\n overflow-y: scroll;\\\\n `\\\\n\\\\nconst SecondContainer = styled.div`\\\\n display: flex;\\\\n flex-direction: column;\\\\n padding-top: calc(-1 * var(--body-top-padding));\\\\n padding: 0 1rem;\\\\n background-color: rgb(248, 248, 249);\\\\n min-height: 100vh;\\\\n`\\\\n\\\\nconst ShareInteractionGeneralContainer = styled.div`\\\\n position: fixed;\\\\n display: flex;\\\\n justify-content: center;\\\\n align-items: center;\\\\n top: 0;\\\\n left: 0;\\\\n height: 100vh;\\\\n width: 100vw;\\\\n backdrop-filter: blur(10px);\\\\n z-index: 1;\\\\n`\\\\n\\\\nconst ShareInteractionMainContainer = styled.div`\\\\n display: flex;\\\\n flex-direction: column;\\\\n background: white;\\\\n padding: 1rem;\\\\n border-radious: 12px;\\\\n`\\\\n\\\\nconst ClosePopUpContainer = styled.div`\\\\n display: flex;\\\\n flex-direction: row-reverse;\\\\n`\\\\n\\\\nconst CloseIcon = styled.div`\\\\n cursor: pointer;\\\\n`\\\\n\\\\nconst PopUpDescription = styled.p`\\\\n color: #474d55;\\\\n`\\\\n\\\\nconst ShowLinkShared = styled.div`\\\\n display: flex;\\\\n justify-content: space-between;\\\\n align-items: center;\\\\n background-color: #f2f6fa;\\\\n padding: 1rem 2rem;\\\\n border-radius: 17px;\\\\n`\\\\n\\\\nconst LinkShared = styled.span`\\\\n color: #0065ff;\\\\n word-wrap: anywhere;\\\\n`\\\\n\\\\nconst ClipboardContainer = styled.div`\\\\n display: flex;\\\\n flex-direction: column;\\\\n align-items: center;\\\\n margin-left: 0.5rem;\\\\n min-width: 2.5rem;\\\\n`\\\\n\\\\nconst ClipboardIcon = styled.i`\\\\n color: ${state.linkCopied ? \\\\\\'#0065FF\\\\\\' : \\\\\\'black\\\\\\'};\\\\n transition: color 0.3s linear;\\\\n cursor: pointer;\\\\n`\\\\n\\\\nconst CopiedFeedback = styled.span`\\\\n font-size: 0.7rem;\\\\n color: #6c757d;\\\\n`\\\\n\\\\nconst SmallButton = styled.button`\\\\n position: relative;\\\\n border: 0;\\\\n background: transparent;\\\\n width: 35px;\\\\n height: 35px;\\\\n`\\\\n//===========================================END STYLED COMPONENTS==================================================\\\\n\\\\n//================================================COMPONENTS========================================================\\\\nconst renderShareInteraction = () => {\\\\n return (\\\\n <ShareInteractionGeneralContainer>\\\\n <ShareInteractionMainContainer>\\\\n <ClosePopUpContainer>\\\\n <CloseIcon\\\\n className=\\\\\\\"bi bi-x\\\\\\\"\\\\n onClick={() => {\\\\n setShowShareSearchModal(false)\\\\n setShowShareModal(false)\\\\n setLinkCopied(false)\\\\n setSharedElement(undefined)\\\\n setSharingSearch(false)\\\\n }}\\\\n ></CloseIcon>\\\\n </ClosePopUpContainer>\\\\n <h3>Share</h3>\\\\n <PopUpDescription>\\\\n {sharedElement.value\\\\n ? \\\\\\'Use this link to share the article\\\\\\'\\\\n : sharingSearch\\\\n ? \\\\\\'Use this link to share the search\\\\\\'\\\\n : \\\\\\\"Can\\\\\\'t share yet. Reload the app and try again.\\\\\\\"}\\\\n </PopUpDescription>\\\\n <ShowLinkShared>\\\\n {(sharedElement.value || sharingSearch) && (\\\\n <LinkShared>{getLink()}</LinkShared>\\\\n )}\\\\n <ClipboardContainer>\\\\n {(sharedElement.value || sharingSearch) && (\\\\n <ClipboardIcon\\\\n className=\\\\\\\"bi-clipboard\\\\\\\"\\\\n onClick={() => {\\\\n clipboard.writeText(getLink())\\\\n setLinkCopied(true)\\\\n }}\\\\n />\\\\n )}\\\\n {linkCopied && <CopiedFeedback>Copied!</CopiedFeedback>}\\\\n </ClipboardContainer>\\\\n </ShowLinkShared>\\\\n </ShareInteractionMainContainer>\\\\n </ShareInteractionGeneralContainer>\\\\n )\\\\n}\\\\n\\\\nconst renderDeleteModal = () => {\\\\n const ModalCard = styled.div`\\\\n position: fixed;\\\\n z-index: 1;\\\\n left: 0;\\\\n top: 0;\\\\n width: 100%;\\\\n height: 100%;\\\\n display: flex;\\\\n justify-content: center;\\\\n align-items: center;\\\\n background: rgba(0, 0, 0, 0.7);\\\\n `\\\\n const ModalContainer = styled.div`\\\\n display: flex;\\\\n width: 400px;\\\\n padding: 20px;\\\\n flex-direction: column;\\\\n align-items: flex-start;\\\\n gap: 16px;\\\\n border-radius: 10px;\\\\n background: #fff;\\\\n border: 1px solid transparent;\\\\n margin-left: auto;\\\\n margin-right: auto;\\\\n margin-buttom: 50%;\\\\n @media only screen and (max-width: 480px) {\\\\n width: 90%;\\\\n }\\\\n `\\\\n const Container = styled.div`\\\\n display: flex;\\\\n flex-direction: column;\\\\n align-items: flex-end;\\\\n gap: 20px;\\\\n align-self: stretch;\\\\n `\\\\n const Footer = styled.div`\\\\n display: flex;\\\\n flex-direction: row;\\\\n align-items: flex-end;\\\\n justify-content: end;\\\\n gap: 16px;\\\\n align-self: stretch;\\\\n `\\\\n\\\\n return (\\\\n <ModalCard>\\\\n <ModalContainer>\\\\n <Container>\\\\n <h3 className=\\\\\\\"w-100\\\\\\\">Delete this post?</h3>\\\\n <Footer>\\\\n <Widget\\\\n src={\\\\n widgets.views.standardWidgets\\\\n .newStyledComponents.Input.Button\\\\n }\\\\n props={{\\\\n children: \\\\\\'Yes, delete it\\\\\\',\\\\n onClick: deletePostListener,\\\\n variant: \\\\\\'danger\\\\\\',\\\\n }}\\\\n />\\\\n <Widget\\\\n src={\\\\n widgets.views.standardWidgets\\\\n .newStyledComponents.Input.Button\\\\n }\\\\n props={{\\\\n children: \\\\\\'Cancel\\\\\\',\\\\n onClick: closeDeleteArticleModal,\\\\n variant: \\\\\\'primary outline\\\\\\',\\\\n }}\\\\n />\\\\n </Footer>\\\\n </Container>\\\\n </ModalContainer>\\\\n </ModalCard>\\\\n )\\\\n}\\\\n\\\\nconst getCategoriesSelectorLabel = () => {\\\\n return (\\\\n <>\\\\n <span>Post & Filter by Categories</span>\\\\n\\\\n <SmallButton>\\\\n <OverlayTrigger\\\\n placement=\\\\\\\"top\\\\\\\"\\\\n overlay={\\\\n <Tooltip>\\\\n <p className=\\\\\\\"m-0\\\\\\\">\\\\n Topics for Community SBT Holders.\\\\n </p>\\\\n </Tooltip>\\\\n }\\\\n >\\\\n <i className=\\\\\\\"bi bi-primary-circle\\\\\\\"></i>\\\\n </OverlayTrigger>\\\\n </SmallButton>\\\\n </>\\\\n )\\\\n}\\\\n//==============================================END COMPONENTS======================================================\\\\n\\\\n//=================================================FUNCTIONS========================================================\\\\nfunction onCommitDeletArticle() {\\\\n setArticlesToRender([])\\\\n setTimeout(() => {\\\\n loadArticles()\\\\n }, 3000)\\\\n setFilterBy({ parameterName: \\\\\\'\\\\\\', parameterValue: {} })\\\\n State.update({\\\\n showDeleteModal: false,\\\\n deleteArticleData: undefined,\\\\n displayedTabId: tabs.SHOW_ARTICLES_LIST.id,\\\\n articleToRenderData: undefined,\\\\n editArticleData: undefined,\\\\n })\\\\n}\\\\n\\\\nfunction deletePostListener() {\\\\n State.update({ saving: true })\\\\n const article = state.deleteArticleData\\\\n deleteArticle(\\\\n getConfig(isTest),\\\\n article.value.metadata.id,\\\\n onCommitDeletArticle,\\\\n closeDeleteArticleModal\\\\n )\\\\n}\\\\n\\\\nfunction getValidEditArticleDataTags() {\\\\n let tags = state.editArticleData.value.articleData.tags ?? []\\\\n let newFormatTags = {}\\\\n\\\\n tags &&\\\\n tags.map((tag) => {\\\\n newFormatTags[tag] = \\\\\\'\\\\\\'\\\\n })\\\\n return newFormatTags\\\\n}\\\\n\\\\nconst initialCreateState = {\\\\n title: state.editArticleData.value.articleData.title ?? \\\\\\'\\\\\\',\\\\n articleBody:\\\\n state.editArticleData.value.articleData.body ?? initialBodyAtCreation,\\\\n tags: state.editArticleData.value.articleData.tags\\\\n ? getValidEditArticleDataTags()\\\\n : {},\\\\n libsCalls: { comment: {}, article: {}, emojis: {}, upVotes: {} },\\\\n}\\\\n\\\\nfunction handleOpenArticle(articleToRenderData) {\\\\n State.update({\\\\n displayedTabId: tabs.SHOW_ARTICLE.id,\\\\n articleToRenderData,\\\\n editArticleData: undefined,\\\\n })\\\\n}\\\\n\\\\nfunction handleEditArticle(articleData) {\\\\n State.update({\\\\n displayedTabId: tabs.ARTICLE_WORKSHOP.id,\\\\n editArticleData: articleData,\\\\n })\\\\n}\\\\n\\\\nfunction handleDeleteArticle(articleData) {\\\\n State.update({\\\\n showDeleteModal: true,\\\\n deleteArticleData: articleData,\\\\n })\\\\n}\\\\n\\\\nfunction closeDeleteArticleModal() {\\\\n State.update({\\\\n showDeleteModal: false,\\\\n deleteArticleData: undefined,\\\\n })\\\\n}\\\\n\\\\nfunction handleFilterArticles(filter) {\\\\n setFilterBy({\\\\n parameterName: filter.filterBy,\\\\n parameterValue: filter.value,\\\\n })\\\\n State.update({\\\\n displayedTabId: tabs.SHOW_ARTICLES_LIST.id,\\\\n editArticleData: undefined,\\\\n })\\\\n}\\\\n\\\\nfunction handleBackButton() {\\\\n loadArticles()\\\\n if (props.editArticleData) {\\\\n setFilterBy({\\\\n parameterName: \\\\\\'\\\\\\',\\\\n parameterValue: undefined,\\\\n handleBackClicked: true,\\\\n })\\\\n State.update({\\\\n displayedTabId: tabs.SHOW_ARTICLE.id,\\\\n editArticleData: undefined,\\\\n firstRender: false,\\\\n })\\\\n } else {\\\\n setFilterBy({\\\\n parameterName: \\\\\\'\\\\\\',\\\\n parameterValue: undefined,\\\\n handleBackClicked: true,\\\\n })\\\\n State.update({\\\\n displayedTabId: tabs.SHOW_ARTICLES_LIST.id,\\\\n articleToRenderData: {},\\\\n editArticleData: undefined,\\\\n firstRender: false,\\\\n })\\\\n }\\\\n}\\\\n\\\\nfunction handleGoHomeButton() {\\\\n setFilterBy({ parameterName: \\\\\\'\\\\\\', parameterValue: {} })\\\\n State.update({\\\\n displayedTabId: tabs.SHOW_ARTICLES_LIST.id,\\\\n articleToRenderData: {},\\\\n editArticleData: undefined,\\\\n })\\\\n loadArticles()\\\\n}\\\\n\\\\nfunction handlePillNavigation(navegateTo) {\\\\n State.update({ displayedTabId: navegateTo, editArticleData: undefined })\\\\n}\\\\n\\\\nfunction handleShareButton(showShareModal, sharedElement) {\\\\n setShowShareModal(showShareModal)\\\\n setSharedElement(sharedElement)\\\\n}\\\\n\\\\nfunction handleShareSearch(showShareSearchModal, newSearchInputValue) {\\\\n //showShareSearchModal is a boolean\\\\n setShowShareSearchModal(showShareSearchModal)\\\\n setSharingSearch(true)\\\\n setSearchInputValue(newSearchInputValue ?? \\\\\\'\\\\\\')\\\\n}\\\\n\\\\nfunction getLink() {\\\\n const baseUrl = `https://near.org/${widgets.thisForum}?${\\\\n isTest && \\\\\\'isTest=true\\\\\\'\\\\n }`\\\\n if (sharingSearch) {\\\\n const link = `${baseUrl}${\\\\n filterBy.parameterName === \\\\\\'tag\\\\\\'\\\\n ? `&st=${filterBy.parameterValue}`\\\\n : \\\\\\'\\\\\\'\\\\n }${searchInputValue !== \\\\\\'\\\\\\' ? `&ss=${searchInputValue}` : \\\\\\'\\\\\\'}`\\\\n return link\\\\n } else {\\\\n const link = `${baseUrl}&${sharedElement.key}=${sharedElement.value}`\\\\n return link\\\\n }\\\\n}\\\\n\\\\nfunction handleOnCommitArticle(articleId) {\\\\n setTimeout(() => {\\\\n const userFilters = { id: articleId, sbt: undefined }\\\\n getArticles(getConfig(isTest), userFilters).then((newArticles) => {\\\\n if (newArticles && newArticles.length > 0) {\\\\n State.update({\\\\n displayedTabId: tabs.SHOW_ARTICLE.id,\\\\n articleToRenderData: newArticles[0],\\\\n })\\\\n }\\\\n })\\\\n }, 3000)\\\\n}\\\\nlet category2 = category\\\\n//===============================================END FUNCTIONS======================================================\\\\nreturn (\\\\n <AppContainer>\\\\n <SecondContainer>\\\\n {state.showDeleteModal && renderDeleteModal()}\\\\n {(showShareModal || showShareSearchModal) &&\\\\n renderShareInteraction()}\\\\n <Widget\\\\n src={widgets.views.editableWidgets.header}\\\\n props={{\\\\n isTest,\\\\n handleGoHomeButton,\\\\n handlePillNavigation,\\\\n brand,\\\\n pills: navigationPills,\\\\n navigationButtons,\\\\n displayedTabId: state.displayedTabId,\\\\n handleFilterArticles,\\\\n filterParameter: filterBy.parameterName,\\\\n handleBackButton,\\\\n tabs,\\\\n sbtsNames,\\\\n widgets,\\\\n }}\\\\n />\\\\n {state.displayedTabId == tabs.SHOW_ARTICLES_LIST.id && (\\\\n <div className=\\\\\\\"my-3 col-lg-8 col-md-8 col-sm-12\\\\\\\">\\\\n <Widget\\\\n src={\\\\n widgets.views.standardWidgets.newStyledComponents\\\\n .Input.Select\\\\n }\\\\n props={{\\\\n label: getCategoriesSelectorLabel(),\\\\n value: category2,\\\\n onChange: (e) => {\\\\n category2 = e\\\\n handleChangeCategory(e)\\\\n },\\\\n options: categories,\\\\n }}\\\\n />\\\\n </div>\\\\n )}\\\\n {state.displayedTabId == tabs.SHOW_ARTICLES_LIST.id &&\\\\n (loadingArticles ? (\\\\n <Widget\\\\n src={\\\\n widgets.views.standardWidgets.newStyledComponents\\\\n .Feedback.Spinner\\\\n }\\\\n />\\\\n ) : (\\\\n <Widget\\\\n src={widgets.views.editableWidgets.showArticlesList}\\\\n props={{\\\\n isTest,\\\\n articlesToRender,\\\\n tabs,\\\\n widgets,\\\\n addressForArticles,\\\\n handleOpenArticle,\\\\n handleFilterArticles,\\\\n authorForWidget,\\\\n initialCreateState,\\\\n editArticleData: state.editArticleData,\\\\n handleEditArticle,\\\\n handleShareButton,\\\\n handleShareSearch,\\\\n filterBy,\\\\n baseActions,\\\\n handleOnCommitArticle,\\\\n sharedSearchInputValue: sharedData.sharedSearch,\\\\n category,\\\\n }}\\\\n />\\\\n ))}\\\\n {state.articleToRenderData.value.articleData.title &&\\\\n state.displayedTabId == tabs.SHOW_ARTICLE.id && (\\\\n <Widget\\\\n src={widgets.views.editableWidgets.articleView}\\\\n props={{\\\\n isTest,\\\\n widgets,\\\\n handleFilterArticles,\\\\n articleToRenderData: state.articleToRenderData,\\\\n authorForWidget,\\\\n handleEditArticle,\\\\n handleShareButton,\\\\n handleDeleteArticle,\\\\n baseActions,\\\\n kanbanColumns,\\\\n sharedCommentId,\\\\n }}\\\\n />\\\\n )}\\\\n\\\\n {state.displayedTabId == tabs.SHOW_ARTICLES_LIST_BY_AUTHORS.id && (\\\\n <Widget\\\\n src={\\\\n widgets.views.editableWidgets\\\\n .showArticlesListSortedByAuthors\\\\n }\\\\n props={{\\\\n isTest,\\\\n finalArticles: articlesToRender,\\\\n tabs,\\\\n widgets,\\\\n handleOpenArticle,\\\\n handleFilterArticles,\\\\n authorForWidget,\\\\n }}\\\\n />\\\\n )}\\\\n\\\\n {state.displayedTabId == tabs.ARTICLE_WORKSHOP.id && (\\\\n <Widget\\\\n src={widgets.views.editableWidgets.create}\\\\n props={{\\\\n isTest,\\\\n addressForArticles,\\\\n authorForWidget,\\\\n widgets,\\\\n initialBody: initialBodyAtCreation,\\\\n initialCreateState,\\\\n editArticleData: state.editArticleData,\\\\n handleFilterArticles,\\\\n handleEditArticle,\\\\n sbtWhiteList,\\\\n sbts,\\\\n baseActions,\\\\n kanbanColumns,\\\\n sharedCommentId,\\\\n handleOnCommitArticle,\\\\n category,\\\\n }}\\\\n />\\\\n )}\\\\n </SecondContainer>\\\\n </AppContainer>\\\\n)\\\\n" |