Commit Graph

31 Commits

Author SHA1 Message Date
Maxime Beauchemin
bce6ca1ae0 refactor: eliminate all static theme dependencies and enable true dynamic theming
This comprehensive architectural transformation removes all static theme imports
(supersetTheme, themeObject) across the entire codebase, replacing them with
proper dynamic theme access patterns that support real-time theme switching.

## What Changed

**Static Exports Eliminated:**
- Removed `supersetTheme` and `themeObject` exports from core theme module
- Eliminated static theme dependencies across 47 files
- Updated ESLint rules to reflect removed exports

**Dynamic Theme Architecture:**
- Functional components: Use `useTheme()` hook for reactive theme access
- Class components: Use `withTheme()` HOC for theme injection
- Transform functions: Access `theme` from chartProps parameter
- Test infrastructure: Use `Theme.fromConfig()` for isolated testing
- Singleton pattern: `DEFAULT_THEME` for efficient fallbacks

**Test Architecture Cleanup:**
- Removed unnecessary theme setup from 30+ test files
- Eliminated legacy `dynamicTheme` cruft from logic tests
- Simplified theme assertions to focus on behavior vs implementation details
- Maintained theme testing only where legitimately needed

**Core Infrastructure:**
- ThemeController uses dynamic theme creation instead of static imports
- ChartProps uses singleton DEFAULT_THEME for efficient fallbacks
- Theme providers only at app root and isolated contexts (tests, storybook)

## Why This Was Needed

The previous architecture had static theme imports that:
- Always returned light theme values regardless of current theme mode
- Broke dark mode compatibility in visualizations (fixed in previous commit)
- Created performance overhead with redundant theme instance creation
- Prevented real-time theme switching across components
- Led to inconsistent theme access patterns

## Benefits

-  Perfect dark mode support - no static dependencies to break theming
-  True dynamic theming - all components react to theme changes
-  Clean architecture - minimal providers, consistent patterns
-  Better performance - singleton pattern eliminates waste
-  Future-proof - ready for theme customization and user preferences
-  Developer experience - clear patterns for every context

This transformation enables the next generation of Superset theming with
complete dynamic theme support and perfect dark mode compatibility.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-16 10:57:36 -07:00
SBIN2010
852adaa6cc feat: conditional formatting improvements in tables (#34330) 2025-08-18 15:13:16 -07:00
JUST.in DO IT
8700a0b939 fix(table chart): render bigint value in a raw mode (#34556) 2025-08-05 13:11:28 -07:00
Maxime Beauchemin
dd129fa403 feat(theming): land Ant Design v5 overhaul — dynamic themes, real dark mode + massive styling refactor (#31590)
Co-authored-by: Enzo Martellucci <52219496+EnxDev@users.noreply.github.com>
Co-authored-by: Diego Pucci <diegopucci.me@gmail.com>
Co-authored-by: Mehmet Salih Yavuz <salih.yavuz@proton.me>
Co-authored-by: Geido <60598000+geido@users.noreply.github.com>
Co-authored-by: Alexandru Soare <37236580+alexandrusoare@users.noreply.github.com>
Co-authored-by: Damian Pendrak <dpendrak@gmail.com>
Co-authored-by: Pius Iniobong <67148161+payose@users.noreply.github.com>
Co-authored-by: Enzo Martellucci <enzomartellucci@gmail.com>
Co-authored-by: Kamil Gabryjelski <kamil.gabryjelski@gmail.com>
2025-06-20 13:38:58 -07:00
Levis Mbote
7deca8f2cd feat(chart): add toggle for percentage metric calculation mode in Table chart (#33656) 2025-06-13 21:00:58 +03:00
Levis Mbote
d75ff9e784 feat(charts): add subtitle option and metric customization controls (#32975) 2025-04-10 17:24:24 +02:00
Vitor Avila
ab22bb1878 fix(Jinja): Emit time grain to table charts even if they don't have a temporal column (#32871) 2025-03-28 13:48:49 -03:00
Fardin Mustaque
7d77dc4fd2 fix: Time Comparison Feature Reverts Metric Labels to Metric Keys in Table Charts (#32665)
Co-authored-by: Fardin Mustaque <fardinmustaque@Fardins-Mac-mini.local>
2025-03-25 14:22:15 +02:00
Michael S. Molina
93ba8e16c3 refactor: Creates the VizType enum (#31193) 2024-11-29 10:05:02 -03:00
Antonio Rivero
6c2bd2a968 fix(table): Use extras in queries (#30335) 2024-09-19 16:45:39 +02:00
Đỗ Trọng Hải
e9094659d3 refactor(frontend): migrate 6 tests from Enzyme to RTL (#30151)
Signed-off-by: hainenber <dotronghai96@gmail.com>
Co-authored-by: JUST.in DO IT <justin.park@airbnb.com>
2024-09-13 15:02:03 -06:00
Ross Mabbett
dac69e2092 feat(explorer): Add configs and formatting to discrete comparison columns (#29553) 2024-07-25 18:43:56 -04:00
Đỗ Trọng Hải
0ca42a8e4d chore: remove React 16.4's obsolete React imports (#28571)
Signed-off-by: hainenber <dotronghai96@gmail.com>
2024-06-05 08:13:24 -03:00
Maxime Beauchemin
12fe2929a4 fix: row limits & row count labels are confusing (#27700) 2024-04-02 13:58:35 -07:00
JUST.in DO IT
6f402991e5 fix(plugins): missing currency on small number format in table chart (#27041) 2024-02-08 15:24:24 -08:00
Ville Brofeldt
19f8405bc0 chore: make TS enums strictly PascalCase (#26875) 2024-01-31 17:40:44 -08:00
Michael S. Molina
8a2f7d378a refactor: Removes the deprecated GENERIC_CHART_AXES feature flag (#26372) 2024-01-31 09:45:57 -05:00
Arko
916f7bcbba fix(table chart): Show Cell Bars correctly #25625 (#25707) 2023-11-06 08:36:21 -03:00
Kamil Gabryjelski
ea21e800a7 fix: Currency formatting in Table raw mode (#25248) 2023-09-11 16:48:39 +02:00
Michael S. Molina
317aa989c2 fix: Dashboard time grain in Table (#24746) 2023-07-20 14:02:52 -03:00
Kamil Gabryjelski
83ff4cd86a feat: Implement currencies formatter for saved metrics (#24517) 2023-06-28 20:51:40 +02:00
JUST.in DO IT
5d910aa2e2 fix(plugin-chart-table): Invalid d3Formatter on String column (#23515) 2023-03-28 15:25:35 -07:00
Mayur
60bab4269f fix(table-chart): don't color empty cells in table chart with color formatters (#21501) 2022-09-28 16:16:12 +08:00
stevetracvc
a45d011e74 fix: issue with sorting by multiple columns in a table (#19920)
Recent commit to sort alphanumeric columns via case insensitive
comparison broke the multi-column sort option. React-table only sorts
by the second (or third...) column if the first column matches.
Since the alphanumeric sort only returned -1 or 1, it never would move
to the subsequent columns when the earlier column values matched.
2022-06-23 08:39:46 -03:00
Michael S. Molina
e9032e95ec chore: Adds theme object to chart properties (#19951) 2022-05-04 09:55:22 -03:00
Josh Soref
bebb10e495 chore(frontend-tests): Spelling (#19853)
* spelling: against

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: been

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: charts

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: clicking

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: columns

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: duplicate

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: especially

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: extensions

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: fields

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: filter

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: for

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: label

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: labeled

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: nativefilter

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: registry

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: render

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: resizable

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: response

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: successful

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: transform

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: unfortunately

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: until

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: virtual

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: wrapper

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

Co-authored-by: Josh Soref <jsoref@users.noreply.github.com>
2022-04-26 10:35:01 -07:00
Stephen Liu
6f5778273e chore: add type checking in plugin test directory (#19387) 2022-03-28 10:20:06 +08:00
Erik Ritter
1e544ce531 fix: null dates in table chart (#17974) 2022-01-10 10:07:59 -08:00
Kamil Gabryjelski
82b47cacba fix(plugin-chart-table): sort alphanumeric columns case insensitive (#17765) 2021-12-15 11:48:25 -07:00
Kamil Gabryjelski
124af4c566 chore(explore): Migrate BigNumber to v1 api [ID-28][ID-55] (#17587)
* chore(explore): Migrate BigNumber to v1 api

* Move to echarts

* Use Echarts trendline

* Fix imports

* Fix parsing dates as strings

* Add from_dttm and to_dttm to v1 chart response

* Fix post processing

* Fix timeRangeFixed

* Fix tests

* Remove from and to dttm from cache

* Cleanup date formatting

* Fix storybook

* Fix missing types

* Fix timestamp with timezone

* Add types to demo's tsconfig

* bug fix

* fix import

* Fix cypress tests

* add sort

* add resample to handle missing values properly

* Sync ChartDataResponseResult schema with ts interface

* Lint fix

* Add migration

* Fix migration

* Remove pass

* Re-raise the exception in migration

* Typo fix

* Update revision

Co-authored-by: Ville Brofeldt <ville.v.brofeldt@gmail.com>
2021-12-15 10:15:14 +01:00
Yongjie Zhao
3c41ff68a4 refactor(monorepo): move superset-ui to superset(stage 2) (#17552) 2021-11-30 08:29:57 +08:00