hii my date filter is not working can you share an...
# gd-beginners
g
hii my date filter is not working can you share any example of this
i
Hi Gaurav, What exactly seems to be an issue here? Your Insight(s) do not respect the selected filter value? Can you share some screenshot with us, please?
g
it's not working
image.png
image.png
i
g
how we can give that it's according update date
image.png
like this
hii please reply
i
Are you trying to implement a custom Date filter as your Dashboard filter?
g
yes and when i appling viewBy than i got this Type '{ primaryMeasure: any; viewBy: any; filters: any; }' is not assignable to type 'IntrinsicAttributes & IHeadlineProps'. Property 'viewBy' does not exist on type 'IntrinsicAttributes & IHeadlineProps'.ts(2322) View Problem (Alt+F8) Quick Fix... (Ctrl+.)
👀 1
i
Also, there’s no need to repost the same question or beg for a response. We try our best to response on time, based on actual team capacity and we keep an eye on all active Slack threads.
j
Hi Gaurav. Ideally, it’d be good to see a code snippet of the component where you’re trying to implement this. Without that it is tough to know what’s wrong. Can you send us this, in text?
g
image.png,image.png,image.png
j
Could you send it as code instead of a screenshot, please?
g
import React from 'react' import * as Md from "../md/full"; import CustomAttributeFilter from "./../routes/CustomAttributeFilter"; import { useSelector } from 'react-redux'; import { useState } from 'react'; import { useDispatch } from 'react-redux'; import {filterData} from './../slices/filterSlice' import { DateFilter, defaultDateFilterOptions } from "@gooddata/sdk-ui-filters"; import './Filter.scss'; function Filter() { const dateFilterOptions = defaultDateFilterOptions; const dispatch=useDispatch() const data=useSelector((state)=>state.filterData) const [filters, setFilters] = useState(data.courseFilter); const [courseFilters, setCourseFilters] = useState(data.courseTypeFilter); const [statess,setStatess]=useState({ selectedFilterOption: dateFilterOptions.allTime, excludeCurrentPeriod: false, }) const onApply = (dateFilterOption, excludeCurrentPeriod) => { setStatess({ selectedFilterOption: dateFilterOption, excludeCurrentPeriod, }); dispatch(filterData({dateFilter {selectedFilterOption dateFilterOption,excludeCurrentPeriod}})) }; return ( <div style={{padding:'20px'}}> <div className='filter-heading'>Filter</div> <div className='filter-label'>Course</div> <div className='filter-input'> <CustomAttributeFilter placeholder="Filter Course" attribute={Md.LessonType} filters={courseFilters} setFilters={(value)=>{ setCourseFilters(value) let datasetsa=value[0]?value[0].positiveAttributeFilter.in.values:[]; datasetsa.push('GAurav') console.warn(datasetsa) dispatch(filterData({courseTypeFilter : value}))} } /> </div> <div className='filter-label'>Course Type</div> <div className='filter-input'> <CustomAttributeFilter placeholder="Filter Course Type" attribute={Md.Name} filters={filters} setFilters={(value)=>{ setFilters(value) dispatch(filterData({courseFilter : value}))} } /> </div> <div className='filter-label'>Date Filter</div> <div className='filter-input'> <DateFilter excludeCurrentPeriod={statess.excludeCurrentPeriod} selectedFilterOption={statess.selectedFilterOption} filterOptions={dateFilterOptions} availableGranularities={["GDC.time.month","GDC.time.year","GDC.time.quarter","GDC.time.date"]} dateFilterMode="active" dateFormat="mm/dd/yyyy" onApply={onApply} /> </div> </div> ) } export default Filter
✔️ 1
import { Grid } from "@mui/material"; import React from "react"; import { Headline } from "@gooddata/sdk-ui-charts"; import { useSelector } from 'react-redux'; import { useEffect } from "react"; import * as Md from "../md/full"; function CountData(props) { const { title, count, textColor, grid } = props; // @ts-ignore const filters=useSelector((state)=>state.filterData) useEffect(()=>{ console.warn(filters.dateFilter) },[filters.dateFilter]) return ( <Grid item container xs={grid ? grid : 6} style={{maxHeight:'120px',display:"block !important"}} className={textColor ? textColor : ""}> <Grid item style={{marginTop: "10px"}}> <span id="courses-added" style={{display:"block",width:"250px"}}>{title}</span> </Grid> <Grid item container className="data-count"> <Grid item> <Headline primaryMeasure={count} viewBy={Md.DateDatasets.UpdatedAt.Month.Short} filters={filters.dateFilter}/> </Grid> </Grid> </Grid> ); } export default CountData;
j
Thanks! I’ll take a look.
The issues looks to be with the types of the onApply function’s parameters.
Example of modifications:
Copy code
import { DateFilter, defaultDateFilterOptions, DateFilterOption } from "@gooddata/sdk-ui-filters";

  interface IDateFilterComponentExampleState {
    selectedFilterOption: DateFilterOption;
    excludeCurrentPeriod: boolean;
  }


  const [statess, setStatess] = useState<IDateFilterComponentExampleState>({
    selectedFilterOption: dateFilterOptions.allTime!,
    excludeCurrentPeriod: false,
  })


  const onApply = (dateFilterOption: DateFilterOption, excludeCurrentPeriod: boolean) => {
    setStatess({
      selectedFilterOption: dateFilterOption,
      excludeCurrentPeriod,
    });
    dispatch(filterData({ dateFilter: { selectedFilterOption: dateFilterOption, excludeCurrentPeriod } }))
  };
g
still not working whereas when i filter on basis of other attribute it works
j
What’s the error message?
g
no error but data is not reload
j
Selecting different dates on the filter triggers no changes, yes? Could you show how you changed your code?
g
yes it's working now thanku
1
j
👌
What was the problem?