Skip to content

Commit deb8341

Browse files
authored
Merge pull request #1801 from akksi/fix/table-w-dropdown-alignment
Fix Dash Table filter options position
2 parents 51a7db5 + caf80fa commit deb8341

File tree

6 files changed

+49
-24
lines changed

6 files changed

+49
-24
lines changed

.circleci/config.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ jobs:
8282
lint-unit-39: &lint-unit
8383
working_directory: ~/dash
8484
docker:
85-
- image: circleci/python:3.9.2-buster-node-browsers
85+
- image: circleci/python:3.9.4-node-browsers
8686
auth:
8787
username: dashautomation
8888
password: $DASH_PAT_DOCKERHUB

components/dash-table/src/dash-table/components/Filter/Column.tsx

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -60,23 +60,25 @@ export default class ColumnFilter extends PureComponent<
6060
data-dash-column={columnId}
6161
style={style}
6262
>
63-
<IsolatedInput
64-
onCopy={(e: any) => {
65-
e.stopPropagation();
66-
TableClipboardHelper.clearClipboard();
67-
}}
68-
onPaste={(e: any) => {
69-
e.stopPropagation();
70-
}}
71-
value={value}
72-
placeholder={'filter data...'}
73-
stopPropagation={true}
74-
submit={this.submit}
75-
/>
76-
<FilterOptions
77-
filterOptions={filterOptions}
78-
toggleFilterOptions={toggleFilterOptions}
79-
/>
63+
<div>
64+
<IsolatedInput
65+
onCopy={(e: any) => {
66+
e.stopPropagation();
67+
TableClipboardHelper.clearClipboard();
68+
}}
69+
onPaste={(e: any) => {
70+
e.stopPropagation();
71+
}}
72+
value={value}
73+
placeholder={'filter data...'}
74+
stopPropagation={true}
75+
submit={this.submit}
76+
/>
77+
<FilterOptions
78+
filterOptions={filterOptions}
79+
toggleFilterOptions={toggleFilterOptions}
80+
/>
81+
</div>
8082
</th>
8183
);
8284
}

components/dash-table/src/dash-table/components/Table/Table.less

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -476,7 +476,6 @@
476476
position: relative;
477477

478478
& input {
479-
position: absolute;
480479
left: 0;
481480
top: 0;
482481
height: 100%;
@@ -687,8 +686,20 @@
687686
}
688687

689688
.dash-spreadsheet-inner {
690-
.dash-header>div {
689+
.dash-header>div,
690+
.dash-filter>div {
691691
display: flex;
692+
693+
input[type="text"] {
694+
flex: 1;
695+
line-height: unset;
696+
&::placeholder {
697+
font-size: 0.9em;
698+
}
699+
}
700+
}
701+
.dash-filter>div {
702+
flex-direction: row-reverse;
692703
}
693704
.column-actions {
694705
display: flex;

components/dash-table/tests/selenium/test_markdown_link.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,11 +50,11 @@ def test_tmdl001_click_markdown_link(test, markdown_options, new_tab, cell_selec
5050
assert target.cell(0, "a").is_selected() == cell_selectable
5151

5252
assert len(test.driver.window_handles) == 2
53-
test.driver.switch_to_window(test.driver.window_handles[1])
53+
test.driver.switch_to.window(test.driver.window_handles[1])
5454
assert test.driver.current_url.startswith("https://www.google.com")
5555

5656
# Make sure the cell is still selected iff cell_selectable, after switching tabs
57-
test.driver.switch_to_window(test.driver.window_handles[0])
57+
test.driver.switch_to.window(test.driver.window_handles[0])
5858
assert target.cell(0, "a").is_selected() == cell_selectable
5959

6060
else:

dash/testing/browser.py

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@
2020
MoveTargetOutOfBoundsException,
2121
)
2222

23+
from webdriver_manager.chrome import ChromeDriverManager
24+
from webdriver_manager.utils import ChromeType
25+
from webdriver_manager.firefox import GeckoDriverManager
26+
2327
from dash.testing.wait import text_to_equal, style_to_equal, contains_text, until
2428
from dash.testing.dash_page import DashPageMixin
2529
from dash.testing.errors import DashAppLoadingError, BrowserError, TestingTimeoutError
@@ -473,7 +477,11 @@ def _get_chrome(self):
473477
desired_capabilities=capabilities,
474478
)
475479
if self._remote
476-
else webdriver.Chrome(options=options, desired_capabilities=capabilities)
480+
else webdriver.Chrome(
481+
ChromeDriverManager(chrome_type=ChromeType.GOOGLE).install(),
482+
options=options,
483+
desired_capabilities=capabilities,
484+
)
477485
)
478486

479487
# https://bugs.chromium.org/p/chromium/issues/detail?id=696481
@@ -516,7 +524,10 @@ def _get_firefox(self):
516524
)
517525
if self._remote
518526
else webdriver.Firefox(
519-
firefox_profile=fp, options=options, capabilities=capabilities
527+
executable_path=GeckoDriverManager().install(),
528+
firefox_profile=fp,
529+
options=options,
530+
capabilities=capabilities,
520531
)
521532
)
522533

requires-testing.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,4 @@ pytest>=6.0.2
77
requests[security]>=2.21.0
88
selenium>=3.141.0
99
waitress>=1.4.4
10+
webdriver-manager>=3.5.1

0 commit comments

Comments
 (0)