Skip to content

Commit

Permalink
Merge pull request #1501 from fedspendingtransparency/FDG-9867
Browse files Browse the repository at this point in the history
FDG-9867 New Data Table section that holds the dataset name, filters, and any notes for any data table (Purple outline) should be above the filters.
  • Loading branch information
chasls2 authored Nov 20, 2024
2 parents c14eee2 + 9f2470e commit 79d95e5
Show file tree
Hide file tree
Showing 4 changed files with 40 additions and 21 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
@import '../../../variables.module.scss';

.infoContainer {
margin-top: 1rem;
.note {
font-weight: $semi-bold-weight;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import { render } from '@testing-library/react';
import React from 'react';
import DataPreviewDatatableBanner from './data-preview-datatable-banner';

describe('DatatableBanner Component', () => {
const bannerText = 'THIS IS A TEST';
it('renders banner with expected notice', async () => {
const { getByText } = render(<DataPreviewDatatableBanner bannerNotice={bannerText} />);
expect(getByText(bannerText)).toBeInTheDocument();
});
});
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import React, { FunctionComponent } from 'react';
import { infoContainer, note } from './data-preview-datatable-banner.module.scss';

type DatatableBannerProps = {
bannerNotice: string;
};

const DataPreviewDatatableBanner: FunctionComponent<DatatableBannerProps> = ({ bannerNotice }) => {
return (
<div className={infoContainer}>
<span className={note}>Note:</span>
<span data-testid="datatable-banner">{' ' + bannerNotice}</span>
</div>
);
};

export default DataPreviewDatatableBanner;
25 changes: 4 additions & 21 deletions src/components/data-preview/data-preview.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,14 @@ import { matchTableFromApiTables, parseTableSelectionFromUrl, rewriteUrl } from
import { getApiData } from '../dataset-data/dataset-data-api-helper/dataset-data-api-helper';
import { queryClient } from '../../../react-query-client';
import UserFilter from '../filter-download-container/user-filter/user-filter';
import DatatableBanner from '../filter-download-container/datatable-banner/datatable-banner';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import DataPreviewFilterSection from './data-preview-filter-section/data-preview-filter-section';
import DateRangeFilter from './data-preview-filter-section/date-range-filter/date-range-filter';
import DataPreviewTableSelectDropdown from './data-preview-dropdown/data-preview-table-select-dropdown';
import { dataPreview, dataPreviewHeader, dataPreviewTitle, selectedTableName } from './data-preview.module.scss';
import Analytics from '../../utils/analytics/analytics';
import { withWindowSize } from 'react-fns';
import DataPreviewDatatableBanner from './data-preview-datatable-banner/data-preview-datatable-banner';

type DataPreviewProp = {
config;
Expand Down Expand Up @@ -234,6 +234,9 @@ const DataPreview: FunctionComponent<DataPreviewProp> = ({
/>
</div>
<div className={selectedTableName}>{selectedTable?.tableName}</div>
{config.datatableBanner && <DataPreviewDatatableBanner bannerNotice={config.datatableBanner} />}
{selectedTable?.userFilter?.notice && <DataPreviewDatatableBanner bannerNotice={selectedTable.userFilter.notice} />}
{selectedTable?.apiFilter?.notice && <DataPreviewDatatableBanner bannerNotice={selectedTable.apiFilter.notice} />}
<div>
{tableColumnSortData && (
<DataPreviewFilterSection
Expand Down Expand Up @@ -274,28 +277,8 @@ const DataPreview: FunctionComponent<DataPreviewProp> = ({
hideButtons={detailApi && !detailViewState}
/>
)}
{selectedTable.userFilter && (
<UserFilter
selectedTable={selectedTable}
onUserFilter={setUserFilterSelection}
apiData={apiData}
setResetFilters={setResetFilters}
allTablesSelected={allTablesSelected}
/>
)}
{selectedTable.apiFilter && (
<UserFilter
selectedTable={selectedTable}
onUserFilter={setUserFilterSelection}
setResetFilters={setResetFilters}
allTablesSelected={allTablesSelected}
setDateRange={setDateRange}
sharedApiFilterOptions={config?.sharedApiFilterOptions}
/>
)}
</>
)}
{config.datatableBanner && <DatatableBanner bannerNotice={config.datatableBanner} />}
{!selectedTable && (
<div data-testid="dateRangePlaceholder">
<h3 className={placeholderText}>Date Range</h3>
Expand Down

0 comments on commit 79d95e5

Please sign in to comment.