You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@superset.apache.org by "villebro (via GitHub)" <gi...@apache.org> on 2023/04/20 10:39:26 UTC
[GitHub] [superset] villebro opened a new pull request, #23748: feat(adhoc-column): add resize option
villebro opened a new pull request, #23748:
URL: https://github.com/apache/superset/pull/23748
### SUMMARY
This PR adds resizing to the adhoc column popover, and is based on what's currently used in the metric and filter popovers. This is often needed when writing custom SQL expressions. In addition, the height multiplier of 2 is removed from the metric and filter popovers, as it only makes intuitive sense when the popover placement is set to `left`, in which case the popover grows both upwards and downwards. Since we let AntD decide which placement to use, it makes more sense to not apply multiplier, as the popover often grows out of bounds quickly, causing weird side-effects when the placement changes. This also felt unintuitive, as the vertical movement was doubled, as opposed to horizontal movement, which was not multiplied.
### AFTER
Now the adhoc column popover is resizable:
<img width="806" alt="image" src="https://user-images.githubusercontent.com/33317356/233337423-e379c836-7e38-4f6b-a8cc-638ab1b9c79f.png">
Also, the removed multiplier makes the resize action be in line with the vertical mouse movement:
https://user-images.githubusercontent.com/33317356/233341632-b633fdba-1a5d-40a3-b909-f939c8191569.mp4
### BEFORE
Previously the adhoc column popover wasn't resizable:
<img width="647" alt="image" src="https://user-images.githubusercontent.com/33317356/233339014-04fae34a-7808-473c-aa02-e3f4eb1be536.png">
Also, the multiplier caused the resize action to feel unintuitive with top placement:
https://user-images.githubusercontent.com/33317356/233341488-04728fca-a063-43b8-9109-117801f8ae0c.mp4
### TESTING INSTRUCTIONS
<!--- Required! What steps can be taken to manually verify the changes? -->
### ADDITIONAL INFORMATION
<!--- Check any relevant boxes with "x" -->
<!--- HINT: Include "Fixes #nnn" if you are fixing an existing issue -->
- [ ] Has associated issue:
- [ ] Required feature flags:
- [ ] Changes UI
- [ ] Includes DB Migration (follow approval process in [SIP-59](https://github.com/apache/superset/issues/13351))
- [ ] Migration is atomic, supports rollback & is backwards-compatible
- [ ] Confirm DB migration upgrade and downgrade tested
- [ ] Runtime estimates and downtime expectations provided
- [ ] Introduces new feature or API
- [ ] Removes existing feature or API
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
[GitHub] [superset] kgabryje commented on a diff in pull request #23748: feat(adhoc-column): add resize option
Posted by "kgabryje (via GitHub)" <gi...@apache.org>.
kgabryje commented on code in PR #23748:
URL: https://github.com/apache/superset/pull/23748#discussion_r1172477363
##########
superset-frontend/src/explore/components/controls/DndColumnSelectControl/ColumnSelectPopover.tsx:
##########
@@ -417,6 +482,13 @@ const ColumnSelectPopover = ({
>
{t('Save')}
</Button>
+ <i
Review Comment:
Could we move the whole resizing logic to a hook that would only return a react component `<i ... />`?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
[GitHub] [superset] villebro commented on a diff in pull request #23748: feat(adhoc-column): add resize option
Posted by "villebro (via GitHub)" <gi...@apache.org>.
villebro commented on code in PR #23748:
URL: https://github.com/apache/superset/pull/23748#discussion_r1172553259
##########
superset-frontend/src/explore/components/controls/DndColumnSelectControl/ColumnSelectPopover.tsx:
##########
@@ -117,6 +118,18 @@ const ColumnSelectPopover = ({
ColumnMeta | undefined
>(initialSimpleColumn);
+ const [width, setWidth] = useState(POPOVER_INITIAL_WIDTH);
+ const [height, setHeight] = useState(POPOVER_INITIAL_HEIGHT);
Review Comment:
Nice, that really put the icing on the cake 🍰
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
[GitHub] [superset] villebro commented on a diff in pull request #23748: feat(adhoc-column): add resize option
Posted by "villebro (via GitHub)" <gi...@apache.org>.
villebro commented on code in PR #23748:
URL: https://github.com/apache/superset/pull/23748#discussion_r1172536346
##########
superset-frontend/src/explore/components/controls/DndColumnSelectControl/ColumnSelectPopover.tsx:
##########
@@ -117,6 +117,71 @@ const ColumnSelectPopover = ({
ColumnMeta | undefined
>(initialSimpleColumn);
+ const [width, setWidth] = useState(POPOVER_INITIAL_WIDTH);
+ const [height, setHeight] = useState(POPOVER_INITIAL_HEIGHT);
+ const [clientX, setClientX] = useState(0);
+ const [clientY, setClientY] = useState(0);
+ const [dragStartX, setDragStartX] = useState(0);
+ const [dragStartY, setDragStartY] = useState(0);
+ const [dragStartWidth, setDragStartWidth] = useState(width);
+ const [dragStartHeight, setDragStartHeight] = useState(height);
+ const [isDragging, setIsDragging] = useState(false);
+
+ const onMouseMove = useCallback((ev: MouseEvent): void => {
+ ev.preventDefault();
+ setClientX(ev.clientX);
+ setClientY(ev.clientY);
+ }, []);
+
+ const onMouseUp = useCallback(() => {
+ setIsDragging(false);
+ }, []);
+
+ const onDragDown = useCallback((ev: React.MouseEvent): void => {
+ setDragStartX(ev.clientX);
+ setDragStartY(ev.clientY);
+ setIsDragging(true);
+ }, []);
+
+ useEffect(() => {
+ if (isDragging) {
+ document.addEventListener('mousemove', onMouseMove);
+ } else {
+ setDragStartWidth(width);
+ setDragStartHeight(height);
+ document.removeEventListener('mousemove', onMouseMove);
+ }
+ }, [onMouseMove, isDragging]);
+
+ useEffect(() => {
+ if (isDragging) {
+ setWidth(
+ Math.max(
+ dragStartWidth + (clientX - dragStartX),
+ POPOVER_INITIAL_WIDTH,
+ ),
+ );
+ setHeight(
+ Math.max(
+ dragStartHeight + (clientY - dragStartY),
+ POPOVER_INITIAL_HEIGHT,
+ ),
+ );
+ }
+ }, [
+ isDragging,
+ clientX,
+ clientY,
+ dragStartWidth,
+ dragStartHeight,
+ dragStartX,
+ dragStartY,
+ ]);
+
+ useEffect(() => {
+ document.addEventListener('mouseup', onMouseUp);
Review Comment:
Great catch!
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
[GitHub] [superset] github-actions[bot] commented on pull request #23748: feat(adhoc-column): add resize option
Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on PR #23748:
URL: https://github.com/apache/superset/pull/23748#issuecomment-1516187804
@villebro Ephemeral environment creation failed. Please check the Actions logs for details.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
[GitHub] [superset] github-actions[bot] commented on pull request #23748: feat(adhoc-column): add resize option
Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on PR #23748:
URL: https://github.com/apache/superset/pull/23748#issuecomment-1516187782
@villebro Container image not yet published for this PR. Please try again when build is complete.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
[GitHub] [superset] kgabryje commented on a diff in pull request #23748: feat(adhoc-column): add resize option
Posted by "kgabryje (via GitHub)" <gi...@apache.org>.
kgabryje commented on code in PR #23748:
URL: https://github.com/apache/superset/pull/23748#discussion_r1172476438
##########
superset-frontend/src/explore/components/controls/DndColumnSelectControl/ColumnSelectPopover.tsx:
##########
@@ -117,6 +117,71 @@ const ColumnSelectPopover = ({
ColumnMeta | undefined
>(initialSimpleColumn);
+ const [width, setWidth] = useState(POPOVER_INITIAL_WIDTH);
+ const [height, setHeight] = useState(POPOVER_INITIAL_HEIGHT);
+ const [clientX, setClientX] = useState(0);
+ const [clientY, setClientY] = useState(0);
+ const [dragStartX, setDragStartX] = useState(0);
+ const [dragStartY, setDragStartY] = useState(0);
+ const [dragStartWidth, setDragStartWidth] = useState(width);
+ const [dragStartHeight, setDragStartHeight] = useState(height);
+ const [isDragging, setIsDragging] = useState(false);
+
+ const onMouseMove = useCallback((ev: MouseEvent): void => {
+ ev.preventDefault();
+ setClientX(ev.clientX);
+ setClientY(ev.clientY);
+ }, []);
+
+ const onMouseUp = useCallback(() => {
+ setIsDragging(false);
+ }, []);
+
+ const onDragDown = useCallback((ev: React.MouseEvent): void => {
+ setDragStartX(ev.clientX);
+ setDragStartY(ev.clientY);
+ setIsDragging(true);
+ }, []);
+
+ useEffect(() => {
+ if (isDragging) {
+ document.addEventListener('mousemove', onMouseMove);
+ } else {
+ setDragStartWidth(width);
+ setDragStartHeight(height);
+ document.removeEventListener('mousemove', onMouseMove);
+ }
+ }, [onMouseMove, isDragging]);
+
+ useEffect(() => {
+ if (isDragging) {
+ setWidth(
+ Math.max(
+ dragStartWidth + (clientX - dragStartX),
+ POPOVER_INITIAL_WIDTH,
+ ),
+ );
+ setHeight(
+ Math.max(
+ dragStartHeight + (clientY - dragStartY),
+ POPOVER_INITIAL_HEIGHT,
+ ),
+ );
+ }
+ }, [
+ isDragging,
+ clientX,
+ clientY,
+ dragStartWidth,
+ dragStartHeight,
+ dragStartX,
+ dragStartY,
+ ]);
+
+ useEffect(() => {
+ document.addEventListener('mouseup', onMouseUp);
Review Comment:
Can you cleanup on unmount? `return () => document.removeEventListenter...`
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
[GitHub] [superset] villebro commented on a diff in pull request #23748: feat(adhoc-column): add resize option
Posted by "villebro (via GitHub)" <gi...@apache.org>.
villebro commented on code in PR #23748:
URL: https://github.com/apache/superset/pull/23748#discussion_r1172535947
##########
superset-frontend/src/explore/components/controls/DndColumnSelectControl/ColumnSelectPopover.tsx:
##########
@@ -417,6 +482,13 @@ const ColumnSelectPopover = ({
>
{t('Save')}
</Button>
+ <i
Review Comment:
Great idea!
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
[GitHub] [superset] villebro commented on pull request #23748: feat(adhoc-column): add resize option
Posted by "villebro (via GitHub)" <gi...@apache.org>.
villebro commented on PR #23748:
URL: https://github.com/apache/superset/pull/23748#issuecomment-1516186978
/testenv up
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
[GitHub] [superset] villebro merged pull request #23748: feat(adhoc-column): add resize option
Posted by "villebro (via GitHub)" <gi...@apache.org>.
villebro merged PR #23748:
URL: https://github.com/apache/superset/pull/23748
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
[GitHub] [superset] codecov[bot] commented on pull request #23748: feat(adhoc-column): add resize option
Posted by "codecov[bot] (via GitHub)" <gi...@apache.org>.
codecov[bot] commented on PR #23748:
URL: https://github.com/apache/superset/pull/23748#issuecomment-1516179880
## [Codecov](https://codecov.io/gh/apache/superset/pull/23748?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) Report
> Merging [#23748](https://codecov.io/gh/apache/superset/pull/23748?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) (bd51ac5) into [master](https://codecov.io/gh/apache/superset/commit/306fb22021f84e7dd527c88c00be1f8e7cca0d8c?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) (306fb22) will **decrease** coverage by `0.04%`.
> The diff coverage is `8.82%`.
> :exclamation: Current head bd51ac5 differs from pull request most recent head 1716baa. Consider uploading reports for the commit 1716baa to get more accurate results
```diff
@@ Coverage Diff @@
## master #23748 +/- ##
==========================================
- Coverage 68.11% 68.08% -0.04%
==========================================
Files 1922 1922
Lines 74102 74133 +31
Branches 8100 8102 +2
==========================================
- Hits 50477 50475 -2
- Misses 21547 21580 +33
Partials 2078 2078
```
| Flag | Coverage Δ | |
|---|---|---|
| javascript | `54.11% <0.00%> (-0.05%)` | :arrow_down: |
Flags with carried forward coverage won't be shown. [Click here](https://docs.codecov.io/docs/carryforward-flags?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#carryforward-flags-in-the-pull-request-comment) to find out more.
| [Impacted Files](https://codecov.io/gh/apache/superset/pull/23748?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) | Coverage Δ | |
|---|---|---|
| [...ols/DndColumnSelectControl/ColumnSelectPopover.tsx](https://codecov.io/gh/apache/superset/pull/23748?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-c3VwZXJzZXQtZnJvbnRlbmQvc3JjL2V4cGxvcmUvY29tcG9uZW50cy9jb250cm9scy9EbmRDb2x1bW5TZWxlY3RDb250cm9sL0NvbHVtblNlbGVjdFBvcG92ZXIudHN4) | `2.47% <0.00%> (-0.86%)` | :arrow_down: |
| [...ols/FilterControl/AdhocFilterEditPopover/index.jsx](https://codecov.io/gh/apache/superset/pull/23748?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-c3VwZXJzZXQtZnJvbnRlbmQvc3JjL2V4cGxvcmUvY29tcG9uZW50cy9jb250cm9scy9GaWx0ZXJDb250cm9sL0FkaG9jRmlsdGVyRWRpdFBvcG92ZXIvaW5kZXguanN4) | `70.21% <ø> (ø)` | |
| [...ols/MetricControl/AdhocMetricEditPopover/index.jsx](https://codecov.io/gh/apache/superset/pull/23748?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-c3VwZXJzZXQtZnJvbnRlbmQvc3JjL2V4cGxvcmUvY29tcG9uZW50cy9jb250cm9scy9NZXRyaWNDb250cm9sL0FkaG9jTWV0cmljRWRpdFBvcG92ZXIvaW5kZXguanN4) | `81.37% <ø> (ø)` | |
| [superset-frontend/src/explore/constants.ts](https://codecov.io/gh/apache/superset/pull/23748?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-c3VwZXJzZXQtZnJvbnRlbmQvc3JjL2V4cGxvcmUvY29uc3RhbnRzLnRz) | `100.00% <ø> (ø)` | |
| [superset/models/core.py](https://codecov.io/gh/apache/superset/pull/23748?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-c3VwZXJzZXQvbW9kZWxzL2NvcmUucHk=) | `90.16% <100.00%> (+0.43%)` | :arrow_up: |
... and [4 files with indirect coverage changes](https://codecov.io/gh/apache/superset/pull/23748/indirect-changes?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation)
:mega: We’re building smart automated test selection to slash your CI/CD build times. [Learn more](https://about.codecov.io/iterative-testing/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
[GitHub] [superset] kgabryje commented on a diff in pull request #23748: feat(adhoc-column): add resize option
Posted by "kgabryje (via GitHub)" <gi...@apache.org>.
kgabryje commented on code in PR #23748:
URL: https://github.com/apache/superset/pull/23748#discussion_r1172479130
##########
superset-frontend/src/explore/components/controls/DndColumnSelectControl/ColumnSelectPopover.tsx:
##########
@@ -117,6 +117,71 @@ const ColumnSelectPopover = ({
ColumnMeta | undefined
>(initialSimpleColumn);
+ const [width, setWidth] = useState(POPOVER_INITIAL_WIDTH);
+ const [height, setHeight] = useState(POPOVER_INITIAL_HEIGHT);
+ const [clientX, setClientX] = useState(0);
+ const [clientY, setClientY] = useState(0);
+ const [dragStartX, setDragStartX] = useState(0);
+ const [dragStartY, setDragStartY] = useState(0);
+ const [dragStartWidth, setDragStartWidth] = useState(width);
+ const [dragStartHeight, setDragStartHeight] = useState(height);
+ const [isDragging, setIsDragging] = useState(false);
+
+ const onMouseMove = useCallback((ev: MouseEvent): void => {
+ ev.preventDefault();
+ setClientX(ev.clientX);
+ setClientY(ev.clientY);
+ }, []);
+
+ const onMouseUp = useCallback(() => {
+ setIsDragging(false);
+ }, []);
+
+ const onDragDown = useCallback((ev: React.MouseEvent): void => {
+ setDragStartX(ev.clientX);
+ setDragStartY(ev.clientY);
+ setIsDragging(true);
+ }, []);
+
+ useEffect(() => {
+ if (isDragging) {
+ document.addEventListener('mousemove', onMouseMove);
+ } else {
+ setDragStartWidth(width);
+ setDragStartHeight(height);
+ document.removeEventListener('mousemove', onMouseMove);
+ }
+ }, [onMouseMove, isDragging]);
+
+ useEffect(() => {
+ if (isDragging) {
+ setWidth(
Review Comment:
I'm wondering if we should have some throttle here - there's going to be a LOT of state updates when user starts dragging
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
[GitHub] [superset] villebro commented on a diff in pull request #23748: feat(adhoc-column): add resize option
Posted by "villebro (via GitHub)" <gi...@apache.org>.
villebro commented on code in PR #23748:
URL: https://github.com/apache/superset/pull/23748#discussion_r1172536893
##########
superset-frontend/src/explore/components/controls/DndColumnSelectControl/ColumnSelectPopover.tsx:
##########
@@ -117,6 +117,71 @@ const ColumnSelectPopover = ({
ColumnMeta | undefined
>(initialSimpleColumn);
+ const [width, setWidth] = useState(POPOVER_INITIAL_WIDTH);
+ const [height, setHeight] = useState(POPOVER_INITIAL_HEIGHT);
+ const [clientX, setClientX] = useState(0);
+ const [clientY, setClientY] = useState(0);
+ const [dragStartX, setDragStartX] = useState(0);
+ const [dragStartY, setDragStartY] = useState(0);
+ const [dragStartWidth, setDragStartWidth] = useState(width);
+ const [dragStartHeight, setDragStartHeight] = useState(height);
+ const [isDragging, setIsDragging] = useState(false);
+
+ const onMouseMove = useCallback((ev: MouseEvent): void => {
+ ev.preventDefault();
+ setClientX(ev.clientX);
+ setClientY(ev.clientY);
+ }, []);
+
+ const onMouseUp = useCallback(() => {
+ setIsDragging(false);
+ }, []);
+
+ const onDragDown = useCallback((ev: React.MouseEvent): void => {
+ setDragStartX(ev.clientX);
+ setDragStartY(ev.clientY);
+ setIsDragging(true);
+ }, []);
+
+ useEffect(() => {
+ if (isDragging) {
+ document.addEventListener('mousemove', onMouseMove);
+ } else {
+ setDragStartWidth(width);
+ setDragStartHeight(height);
+ document.removeEventListener('mousemove', onMouseMove);
+ }
+ }, [onMouseMove, isDragging]);
+
+ useEffect(() => {
+ if (isDragging) {
+ setWidth(
Review Comment:
Very good idea also - added 👍
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
[GitHub] [superset] kgabryje commented on a diff in pull request #23748: feat(adhoc-column): add resize option
Posted by "kgabryje (via GitHub)" <gi...@apache.org>.
kgabryje commented on code in PR #23748:
URL: https://github.com/apache/superset/pull/23748#discussion_r1172543836
##########
superset-frontend/src/explore/components/controls/DndColumnSelectControl/ColumnSelectPopover.tsx:
##########
@@ -117,6 +118,18 @@ const ColumnSelectPopover = ({
ColumnMeta | undefined
>(initialSimpleColumn);
+ const [width, setWidth] = useState(POPOVER_INITIAL_WIDTH);
+ const [height, setHeight] = useState(POPOVER_INITIAL_HEIGHT);
Review Comment:
What do you think about moving `width/height` state into `useResizeButton` and having the hook return `{resizeButton, width, height}`?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org