{"version":3,"file":"index-CHeF-8DP.js","sources":["../../src/scripts/modules/react-modules/Listings/BlogAndNewsListing/useGetBlogAndNewsListing.ts","../../src/scripts/modules/react-modules/Listings/BlogAndNewsListing/index.tsx"],"sourcesContent":["import { useQuery } from '@tanstack/react-query';\nimport { GraphQLClient } from 'graphql-request';\nimport { useEffect, useRef, useCallback } from 'react';\nimport {\n BlogAndNewsListingDocument,\n BlogAndNewsListingQuery\n} from '../../../../../codegenGenerated/optigraphql/generated';\nimport { getEnvGQLUrl } from '../../../../helpers';\nimport { ListingParams } from '../types';\nimport { getFacetValueById } from '../utils';\n\nexport enum BlogFacetTypes {\n TopicFacet = 'TopicFacet',\n ContentTypeFacet = 'ContentTypeFacet',\n CollegeOrSchoolFacet = 'CollegeOrSchoolFacet'\n}\n\nexport const useGetBlogAndNewsListing = (params?: ListingParams) => {\n const graphQLClient = new GraphQLClient(getEnvGQLUrl());\n const { orderBy, pagination, searchTerm, facets } = params as ListingParams;\n\n let orderByValue = {};\n let startDate = null;\n let endDate: string | null = null;\n\n if (facets) {\n startDate = (facets?.find(f => f.id === 'minDate')?.value as string) || null;\n endDate = (facets?.find(f => f.id === 'maxDate')?.value as string) || null;\n\n const adjustedStartDate = new Date(startDate as string);\n const adjustedEndDate = new Date(endDate as string);\n if (endDate && adjustedStartDate > adjustedEndDate) {\n startDate = endDate as string;\n }\n }\n\n if (params) {\n // Determine orderByValue based on conditions\n if (searchTerm !== '') {\n orderByValue = { Date: 'DESC', _ranking: 'SEMANTIC' };\n } else {\n switch (orderBy) {\n case 'RELEVANCE':\n orderByValue = { _ranking: 'SEMANTIC' };\n break;\n case 'ASC':\n orderByValue = { Date: 'ASC', _ranking: 'SEMANTIC' };\n break;\n case 'DESC':\n orderByValue = { Date: 'DESC', _ranking: 'SEMANTIC' };\n break;\n case 'A-Z':\n orderByValue = { Name: 'ASC', _ranking: 'SEMANTIC' };\n break;\n }\n }\n }\n\n const previousParamsRef = useRef<ListingParams | undefined>();\n\n const hasParamsChanged = () => {\n if (!previousParamsRef.current) {\n return true;\n }\n const prev = previousParamsRef.current;\n const orderByChanged = JSON.stringify(prev.orderBy) !== JSON.stringify(params?.orderBy);\n const paginationChanged =\n prev.pagination?.skip !== params?.pagination?.skip ||\n prev.pagination?.limit !== params?.pagination?.limit;\n const searchTermChanged = prev.searchTerm !== params?.searchTerm;\n const facetsChanged = JSON.stringify(prev.facets) !== JSON.stringify(params?.facets);\n\n return orderByChanged || paginationChanged || searchTermChanged || facetsChanged;\n };\n\n const { refetch, ...queryResult } = useQuery({\n queryKey: ['blogAndNews'],\n queryFn: async () => {\n previousParamsRef.current = { ...params };\n return graphQLClient.request(BlogAndNewsListingDocument, {\n orderBy: orderByValue,\n numberOfResults: pagination!.limit,\n skip: pagination!.skip,\n searchTerm: searchTerm === '' ? null : searchTerm,\n searchTermBoost: searchTerm ? `%${searchTerm}%` : null,\n startDate: startDate !== null ? startDate : new Date().toISOString(),\n endDate,\n topicFacet: facets ? getFacetValueById(facets, BlogFacetTypes.TopicFacet) : null,\n contentTypeFacet: facets\n ? getFacetValueById(facets, BlogFacetTypes.ContentTypeFacet)\n : null,\n collegeOrSchoolFacet: facets\n ? getFacetValueById(facets, BlogFacetTypes.CollegeOrSchoolFacet)\n : null\n }) as BlogAndNewsListingQuery;\n },\n refetchOnWindowFocus: false\n });\n\n useEffect(() => {\n if (hasParamsChanged()) {\n refetch();\n }\n }, [params, refetch]);\n\n const getQueryStatus = useCallback(() => {\n if (queryResult.isLoading) return 'loading';\n if (queryResult.isError) return 'error';\n if (queryResult.isSuccess) return 'success';\n return 'idle';\n }, [queryResult.isLoading, queryResult.isError, queryResult.isSuccess]);\n\n const currentStatus = getQueryStatus();\n\n return {\n status: currentStatus,\n error: queryResult.error as Error,\n results:\n currentStatus === 'success' && queryResult.data && queryResult.data.ArticleDetailPage?.items\n ? queryResult.data.ArticleDetailPage.items\n : [],\n total:\n currentStatus === 'success' && queryResult.data && queryResult.data.ArticleDetailPage?.total\n ? queryResult.data.ArticleDetailPage.total\n : 0,\n facets:\n currentStatus === 'success' && queryResult.data && queryResult.data.ArticleDetailPage?.facets\n ? queryResult.data.ArticleDetailPage.facets\n : {}\n };\n};\n","import React, { useState, useEffect } from 'react';\nimport { ArticleDetailPage } from '../../../../../codegenGenerated/optigraphql/generated';\nimport { PaginationType } from '../../../../components/react-components/Pagination';\nimport FacetAccordion, { FacetData } from '../Facets/FacetAccordion';\nimport FacetsMobile from '../Facets/FacetsMobile';\nimport useFacetChangeHandler from '../Facets/useFacetChangeHandler';\nimport { Listing } from '../Listing';\nimport Search from '../Search';\nimport SearchTags from '../SearchTags';\nimport SelectSort from '../SelectSort';\nimport { ListingCommonProps, ListingTypes, SortOptions } from '../types';\nimport { useGetBlogAndNewsListing } from './useGetBlogAndNewsListing';\nimport { useListingUrlState } from '../hooks/useListingUrlState';\n\ninterface FacetItem {\n name: string;\n count: number;\n}\n\ninterface FacetCategory {\n Categories?: {\n IdTitle?: FacetItem[];\n };\n}\n\ninterface BlogFacetsData {\n [key: string]: FacetCategory;\n}\n\ninterface OwnProps extends ListingCommonProps {\n blogAndNewsTopicFacetLabel: string;\n blogAndNewsContentTypeFacetLabel: string;\n blogAndNewsSchoolFacetLabel: string;\n}\n\nconst BlogAndNewsListing = ({\n noResultsLabel,\n tagsNoResultsLabel,\n searchPlaceholder,\n resultsNumberLabel,\n resultsNumber,\n sortByRelevanceLabel,\n sortByRecentLabel,\n sortByAlphabeticalLabel,\n mobileShowResultsLabel,\n clearAllLabel,\n mobileFilterNarrowLabel,\n mobileAppliedFiltersLabel,\n minDatePlaceholder,\n maxDatePlaceholder,\n blogAndNewsTopicFacetLabel,\n blogAndNewsContentTypeFacetLabel,\n blogAndNewsSchoolFacetLabel,\n imgFallback\n}: OwnProps) => {\n const [isFirstLoad, setIsFirstLoad] = useState(true);\n\n const initialFacets = [\n {\n id: 'TopicFacet',\n type: 'accordion',\n title: blogAndNewsTopicFacetLabel,\n items: [],\n value: null\n },\n {\n id: 'ContentTypeFacet',\n type: 'accordion',\n title: blogAndNewsContentTypeFacetLabel,\n items: [],\n value: null\n },\n {\n id: 'CollegeOrSchoolFacet',\n type: 'accordion',\n title: blogAndNewsSchoolFacetLabel,\n items: [],\n value: null\n }\n ];\n\n const {\n searchTerm,\n orderBy,\n pagination,\n facets,\n setFacets,\n setPagination,\n handleSearchTermChange,\n handleFacetsChange,\n handleOrderByChange,\n handlePaginationChange\n } = useListingUrlState({\n defaultLimit: +resultsNumber || 10,\n initialFacets\n });\n\n const sortOptions = [\n {\n label: sortByRecentLabel,\n value: SortOptions.DESC\n },\n {\n label: sortByRelevanceLabel,\n value: SortOptions.RELEVANCE\n },\n {\n label: sortByAlphabeticalLabel,\n value: SortOptions.AZ\n }\n ];\n\n const {\n status,\n results,\n error,\n total,\n facets: facetsData\n } = useGetBlogAndNewsListing({\n pagination: isFirstLoad ? { skip: 0, limit: 0, total: 0 } : pagination,\n orderBy: !isFirstLoad ? orderBy : undefined,\n searchTerm: !isFirstLoad ? searchTerm : '',\n facets: !isFirstLoad ? facets : []\n });\n\n // Handle initial facets load\n useEffect(() => {\n if (facetsData && Object.keys(facetsData).length > 0 && isFirstLoad) {\n const updatedFacets = facets.map(facet => {\n const facetData = (facetsData as BlogFacetsData)[facet.id];\n const facetItems =\n facetData?.Categories?.IdTitle?.map((item: FacetItem) => {\n const [id, name] = item.name.split('|');\n return {\n id,\n value: name.trim(),\n title: name.trim(),\n count: item.count\n };\n }) || [];\n\n // Clean up invalid facet values\n const currentValue = facet.value;\n const validValues = facetItems.map(item => item.id);\n\n // If no valid values exist, set to null\n if (!currentValue || !validValues.length) {\n return {\n ...facet,\n items: facetItems,\n value: null\n };\n }\n\n // Handle array values\n if (Array.isArray(currentValue)) {\n const validSelectedValues = currentValue.filter(val => validValues.includes(val));\n return {\n ...facet,\n items: facetItems,\n value: validSelectedValues.length ? validSelectedValues : null\n };\n }\n\n // Handle single value\n return {\n ...facet,\n items: facetItems,\n value: validValues.includes(currentValue as string) ? currentValue : null\n };\n });\n\n setFacets(updatedFacets);\n setIsFirstLoad(false);\n\n // Update URL if we cleaned up any invalid facets\n if (JSON.stringify(updatedFacets) !== JSON.stringify(facets)) {\n handleFacetsChange(updatedFacets);\n }\n }\n }, [facetsData, isFirstLoad, facets, setFacets, handleFacetsChange]);\n\n useEffect(() => {\n if (total !== pagination.total) {\n setPagination(prev => ({\n ...prev,\n total\n }));\n }\n }, [total, pagination.total, setPagination]);\n\n const accordionFacets = facets.filter(facet => facet.type === 'accordion');\n\n const onSelectionChangeHandler = useFacetChangeHandler({\n facets,\n isEcommerceListing: false,\n isProgramListing: false,\n pagination,\n setFilters: handleFacetsChange,\n setPagination: handlePaginationChange\n });\n\n return (\n <>\n <div className=\"listing__heading\">\n <SearchTags\n resultsNumberLabel={resultsNumberLabel}\n tagsNoResultsLabel={tagsNoResultsLabel}\n resultsNumber={results ? results.length : 0}\n pagination={pagination}\n facets={facets}\n setFilters={handleFacetsChange}\n clearAllLabel={clearAllLabel}\n setPagination={handlePaginationChange}\n />\n <SelectSort\n options={sortOptions}\n sort={orderBy}\n setSort={handleOrderByChange}\n defaultValue={SortOptions.RELEVANCE}\n isMobile={false}\n />\n </div>\n\n <div className=\"listing__left-column\">\n <Search\n searchPlaceholder={searchPlaceholder}\n setStoreSearchTerm={handleSearchTermChange}\n searchTerm={searchTerm}\n pagination={pagination}\n setPagination={handlePaginationChange}\n ariaLabel=\"Enter Keyword for Blog and News\"\n listingType={ListingTypes.BLOG_AND_NEWS_LISTING}\n setSortBy={handleOrderByChange}\n />\n\n <div className=\"listing__facets\">\n {accordionFacets && accordionFacets.length > 0 && (\n <FacetAccordion\n facetsData={facetsData as FacetData}\n facets={accordionFacets}\n onSelectionChangeHandler={onSelectionChangeHandler}\n />\n )}\n </div>\n </div>\n\n <Listing\n id=\"blog-and-news-listing\"\n noResultsLabel={noResultsLabel}\n resultsNumber={resultsNumber}\n status={status}\n results={results as ArticleDetailPage[]}\n error={error}\n searchTerm={searchTerm}\n imgFallback={imgFallback as string}\n setPagination={handlePaginationChange}\n pagination={pagination}\n paginationType={PaginationType.Pagination}\n />\n\n <FacetsMobile\n facetsData={facetsData as FacetData}\n mobileFilterNarrowLabel={mobileFilterNarrowLabel}\n mobileAppliedFiltersLabel={mobileAppliedFiltersLabel}\n minDatePlaceholder={minDatePlaceholder}\n maxDatePlaceholder={maxDatePlaceholder}\n clearAllLabel={clearAllLabel}\n mobileShowResultsLabel={mobileShowResultsLabel}\n facets={facets}\n setFilters={handleFacetsChange}\n setOrderBy={handleOrderByChange}\n orderBy={orderBy}\n pagination={pagination}\n sortOptions={sortOptions}\n defaultSortValue={SortOptions.RELEVANCE}\n setPagination={handlePaginationChange}\n />\n </>\n );\n};\n\nexport default BlogAndNewsListing;\n"],"names":["useGetBlogAndNewsListing","params","graphQLClient","GraphQLClient","getEnvGQLUrl","orderBy","pagination","searchTerm","facets","orderByValue","startDate","endDate","_a","f","_b","adjustedStartDate","adjustedEndDate","previousParamsRef","useRef","hasParamsChanged","prev","orderByChanged","paginationChanged","_c","_d","searchTermChanged","facetsChanged","refetch","queryResult","useQuery","BlogAndNewsListingDocument","getFacetValueById","useEffect","currentStatus","useCallback","_e","BlogAndNewsListing","noResultsLabel","tagsNoResultsLabel","searchPlaceholder","resultsNumberLabel","resultsNumber","sortByRelevanceLabel","sortByRecentLabel","sortByAlphabeticalLabel","mobileShowResultsLabel","clearAllLabel","mobileFilterNarrowLabel","mobileAppliedFiltersLabel","minDatePlaceholder","maxDatePlaceholder","blogAndNewsTopicFacetLabel","blogAndNewsContentTypeFacetLabel","blogAndNewsSchoolFacetLabel","imgFallback","isFirstLoad","setIsFirstLoad","useState","initialFacets","setFacets","setPagination","handleSearchTermChange","handleFacetsChange","handleOrderByChange","handlePaginationChange","useListingUrlState","sortOptions","SortOptions","status","results","error","total","facetsData","updatedFacets","facet","facetData","facetItems","item","id","name","currentValue","validValues","validSelectedValues","val","accordionFacets","onSelectionChangeHandler","useFacetChangeHandler","React","SearchTags","SelectSort","Search","ListingTypes","FacetAccordion","Listing","PaginationType","FacetsMobile"],"mappings":"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"}