GitHub user dosubot[bot] added a comment to the discussion: New data picker 
filter component

<!-- Greeting -->
Hi @gomonuk! I'm [Dosu](https://go.dosu.dev/dosubot) and I’m helping the 
superset team.

<!-- Answer -->
You can add a new, simpler data picker filter to Superset by implementing it as 
a new filter plugin in the frontend codebase. Superset's filters (like Select, 
Range, and Time) are structured as modular plugins—each is a React component, 
typically extending `ChartPlugin` from `@superset-ui/core`, and lives in 
`superset-frontend/src/filters/components` 
[example](https://github.com/apache/superset/blob/829e4d92d91ceae4b43b1ed3b063ffe45377799c/superset-frontend/src/filters/components/Select/index.ts).
 

Currently, there isn't a fully supported way to add filter plugins purely as 
external npm packages without modifying the core codebase. While the 
architecture is plugin-like, new filters must be added directly to the codebase 
and exported, then integrated with the dashboard and explore views 
[example](https://github.com/apache/superset/blob/829e4d92d91ceae4b43b1ed3b063ffe45377799c/superset-frontend/src/filters/components/index.ts).
 So, the best-supported approach is to prepare a merge request (pull request) 
with your new filter component for inclusion in the main repository.

When building your filter, follow the component guidelines: use Ant Design 
components where possible, style with Emotion and theme variables, write in 
TypeScript, and include Storybook stories and unit tests 
[guidelines](https://github.com/apache/superset/wiki/Component-Style-Guidelines-and-Best-Practices).

There are open threads discussing the inconvenience of the current filters and 
the need for better extensibility 
[discussion](https://github.com/apache/superset/issues/31932). The maintainers 
are open to reviewing proposals for new, high-quality filter plugins.

If you need inspiration, check out the existing filter plugins like 
`FilterSelectPlugin`, `RangeFilterPlugin`, and `TimeFilterPlugin` for structure 
and integration patterns.


<!-- Dosu Comment Footer -->
*To reply, just mention [@dosu](https://go.dosu.dev/dosubot).*

---
<sup>How did I do? 
[Good](https://app.dosu.dev/response-feedback/2d3654fd-b0ce-4344-95ee-0e53b6c2e204?feedback_type=great_response)
 | 
[Irrelevant](https://app.dosu.dev/response-feedback/2d3654fd-b0ce-4344-95ee-0e53b6c2e204?feedback_type=irrelevant_answer)
 | 
[Incorrect](https://app.dosu.dev/response-feedback/2d3654fd-b0ce-4344-95ee-0e53b6c2e204?feedback_type=incorrect_sources)
 | 
[Verbose](https://app.dosu.dev/response-feedback/2d3654fd-b0ce-4344-95ee-0e53b6c2e204?feedback_type=too_verbose)
 | 
[Hallucination](https://app.dosu.dev/response-feedback/2d3654fd-b0ce-4344-95ee-0e53b6c2e204?feedback_type=hallucination)
 | [Report 
🐛](https://app.dosu.dev/response-feedback/2d3654fd-b0ce-4344-95ee-0e53b6c2e204?feedback_type=bug_report)
 | 
[Other](https://app.dosu.dev/response-feedback/2d3654fd-b0ce-4344-95ee-0e53b6c2e204?feedback_type=other)</sup>&nbsp;&nbsp;[![Chat
 with 
Dosu](https://dosu.dev/dosu-chat-badge.svg)](https://app.dosu.dev/a28d3c7e-a9d3-459e-9fb6-3a6f9ff4f357/ask?utm_source=github)&
 nbsp;[![Join 
Discord](https://img.shields.io/badge/join-5865F2?logo=discord&logoColor=white&label=)](https://go.dosu.dev/discord-bot)&nbsp;[![Share
 on 
X](https://img.shields.io/badge/X-share-black)](https://twitter.com/intent/tweet?text=%40dosu_ai%20helped%20me%20solve%20this%20issue!&url=https%3A//github.com/apache/superset/discussions/35032)

GitHub link: 
https://github.com/apache/superset/discussions/35032#discussioncomment-14319000

----
This is an automatically sent email for [email protected].
To unsubscribe, please send an email to: 
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to