Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
6cb4274
update base ui
gzcqqqqqqqq1 Apr 28, 2026
3574b8f
update app style
gzcqqqqqqqq1 Apr 29, 2026
ee7a5b3
update codes
gzcqqqqqqqq1 May 18, 2026
0804aad
fix disabled style
gzcqqqqqqqq1 May 18, 2026
635712b
fix disabled style2
gzcqqqqqqqq1 May 18, 2026
d39275f
add search input for some select
gzcqqqqqqqq1 May 18, 2026
353b462
update codes
gzcqqqqqqqq1 Jun 12, 2026
ad88d9a
update select-ui
gzcqqqqqqqq1 Jun 12, 2026
9620a55
update ui select
gzcqqqqqqqq1 Jun 15, 2026
5e1dcf8
rm DTableCustomizeCollaboratorSelect
gzcqqqqqqqq1 Jun 18, 2026
d639dd2
rm some component
gzcqqqqqqqq1 Jun 18, 2026
1fc87fb
rm dtablegroup
gzcqqqqqqqq1 Jun 22, 2026
d6146b1
update ui
gzcqqqqqqqq1 Jun 22, 2026
e1c0049
update ui
gzcqqqqqqqq1 Jun 22, 2026
5b5372f
update ui
gzcqqqqqqqq1 Jun 22, 2026
117977a
update dtable-ui-component ui
gzcqqqqqqqq1 Jun 22, 2026
1f216ba
update ui
gzcqqqqqqqq1 Jun 22, 2026
4ce48bf
update ui
gzcqqqqqqqq1 Jun 22, 2026
49c231f
update ui
gzcqqqqqqqq1 Jun 22, 2026
c5a9c55
update ui
gzcqqqqqqqq1 Jun 22, 2026
608e107
update ui
gzcqqqqqqqq1 Jun 23, 2026
b2f9742
update ui
gzcqqqqqqqq1 Jun 23, 2026
e2e6893
update ui
gzcqqqqqqqq1 Jun 25, 2026
1ceb47a
update ui
gzcqqqqqqqq1 Jun 26, 2026
888009c
update ui
gzcqqqqqqqq1 Jun 30, 2026
bde030d
update ui
gzcqqqqqqqq1 Jun 30, 2026
1557548
update ui
gzcqqqqqqqq1 Jun 30, 2026
e2f052d
update ui
gzcqqqqqqqq1 Jun 30, 2026
18d17db
update ui
gzcqqqqqqqq1 Jun 30, 2026
7bd6d24
update var(--bs-bg-border-color)
gzcqqqqqqqq1 Jun 30, 2026
913a328
update filter logic
gzcqqqqqqqq1 Jun 30, 2026
61eb419
update ui
gzcqqqqqqqq1 Jul 2, 2026
ae3d617
update ui
gzcqqqqqqqq1 Jul 2, 2026
a8e74b6
add codes
gzcqqqqqqqq1 Jul 2, 2026
f7a97d6
update ui
gzcqqqqqqqq1 Jul 2, 2026
3fa27c1
update ui
gzcqqqqqqqq1 Jul 2, 2026
25cbfc0
update ui
gzcqqqqqqqq1 Jul 2, 2026
3a4629e
update select ui
gzcqqqqqqqq1 Jul 2, 2026
b9717ce
update ui
gzcqqqqqqqq1 Jul 3, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
66 changes: 38 additions & 28 deletions src/AsyncUserSelect/index.css
Original file line number Diff line number Diff line change
Expand Up @@ -3,79 +3,84 @@
height: auto !important;
min-height: 38px;
max-width: calc(100% - 10px);
padding: .375rem 40px .375rem 1rem;
position: relative;
}

.dtable-ui-selected-users-container.focus {
border: 1px solid var(--bs-bg-border-color) !important;
}

.dtable-ui-selected-users-container .dtable-ui-user-select-placeholder {
color: #808080;
color: var(--bs-icon-color);
}

.select-dropdown-indicator {
margin-left: -2px;
position: absolute;
right: 16px;
top: 50%;
transform: translateY(-50%)
}

.select-dropdown-indicator .multicolor-icon {
font-size: 12px;
width: 12px;
height: 12px;
}

.dtable-ui-user-select-popover .popover {
width: 385px;
max-width: 385px;
background: var(--bs-popover-bg);
border: 1px solid var(--bs-border-secondary-color);
border-radius: 4px;
box-shadow: var(--bs-border-secondary-shadow);
margin-top: -4px;
}

.dtable-ui-user-select-container {
position: relative;
}

.dtable-ui-user-select-container .dtable-ui-user-search-container {
padding: 10px 10px 0 10px;
}

.dtable-ui-user-select-container .dtable-ui-user-search-container input {
height: 28px;
}

.dtable-ui-user-select-container .dtable-ui-user-list-container {
min-height: 160px;
max-height: 200px;
margin: 10px 0;
padding: 8px;
overflow: auto;
position: relative;
}

.dtable-ui-user-select-container .dtable-ui-user-list-container .dtable-ui-user-item-container {
display: flex;
align-items: center;
justify-content: space-between;
height: 30px;
padding: 0 10px;
height: 32px;
padding: 0 8px;
font-size: 14px;
cursor: pointer;
border-radius: 4px;
}

.dtable-ui-user-select-container .dtable-ui-user-list-container .dtable-ui-user-item-container:hover,
.dtable-ui-user-select-container .dtable-ui-user-list-container .dtable-ui-user-item-container-highlight {
background: #f5f5f5;
background-color: var(--bs-btn-background-hover);
cursor: pointer;
}

.no-user-search-result {
color: #666666;
font-size: 14px;
padding-left: 10px;
padding: 10px;
overflow: auto;
.dtable-ui-user-select-container .dtable-ui-user-list-container {
margin: 0 !important;
}

.dtable-ui-user-select-popover .popover .dtable-ui-user-item {
background: transparent;
}

.dtable-ui-user-list-container .dtable-ui-collaborator-check-icon .dtable-icon-check-mark {
color: #798d99;
font-size: 12px;
.dtable-ui-user-list-container .dtable-ui-collaborator-check-icon .dtable-icon-check {
color: var(--bs-icon-color);
font-size: 14px;
}

/* user-item */
.dtable-ui-user-item {
display: inline-flex;
align-items: center;
margin: 2px 10px 2px 0;
margin: 2px 4px 2px 0;
padding: 0 8px 0 2px;
height: 20px;
font-size: 13px;
Expand All @@ -95,6 +100,7 @@
justify-content: center;
transform: translateY(0);
flex-shrink: 0;
margin-right: 4px;
}

.dtable-ui-user-item .user-name {
Expand Down Expand Up @@ -125,3 +131,7 @@
color: #666666;
cursor: pointer;
}

.dtable-ui-selected-users-container .dtable-ui-users-input {
padding-right: 37px;
}
54 changes: 30 additions & 24 deletions src/AsyncUserSelect/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,15 @@ import PropTypes from 'prop-types';
import classnames from 'classnames';
import { Popover } from 'reactstrap';
import ClickOutside from '../ClickOutside';
import DtableSearchInput from '../DTableSearchInput';
import DTableCustomizeSearchInput from '../DTableCustomizeSearchInput';
import UserItem from './user-item';
import { getLocale } from '../lang';
import keyCodes from '../constants/key-codes';
import DTableIcon from '../DTableIcon';

import './index.css';

const AsyncUserSelect = ({ className, emptyPlaceholder = '', searchPlaceholder = '', isMulti = true, enableShowIDInOrgWhenSearchUser = false, selectedUsers = [], loadOptions, modifySelectedUsers }) => {
const AsyncUserSelect = ({ className, emptyPlaceholder = '', searchPlaceholder = '', isMulti = true, enableShowIDInOrgWhenSearchUser = false, selectedUsers = [], loadOptions, modifySelectedUsers, showDeptBtn = false }) => {
const [isPopoverOpen, setIsPopoverOpen] = useState(false);
const [searchValue, setSearchValue] = useState('');
const [searchedUsers, setSearchedUsers] = useState([]);
Expand Down Expand Up @@ -191,20 +192,23 @@ const AsyncUserSelect = ({ className, emptyPlaceholder = '', searchPlaceholder =
<ClickOutside onClickOutside={onClickOutside}>
<>
<div className={classnames('dtable-ui-selected-users-container form-control d-flex align-items-center', className, { 'focus': isPopoverOpen })} onClick={onTogglePopover} ref={selectorRef}>
{selectedUsers.map((user, index) => {
return (
<UserItem
key={`dtable-ui-user-selector-selected-user-${index}`}
user={user}
deleteUser={deselectUser}
/>
);
})}
{selectedUsers.length === 0 && (
<div className="dtable-ui-user-select-placeholder">
{emptyPlaceholder || getLocale('Search_users')}
</div>
)}
<div className='dtable-ui-users-input'>
{selectedUsers.map((user, index) => {
return (
<UserItem
key={`dtable-ui-user-selector-selected-user-${index}`}
user={user}
deleteUser={deselectUser}
/>
);
})}
{selectedUsers.length === 0 && (
<div className="dtable-ui-user-select-placeholder">
{emptyPlaceholder || getLocale('Search_users')}
</div>
)}
{!showDeptBtn && <span className="select-dropdown-indicator d-inline-flex align-items-center"><DTableIcon symbol="down" color='var(--bs-icon-color)'/></span>}
</div>
</div>
{selectorRef.current && (
<Popover
Expand All @@ -215,15 +219,16 @@ const AsyncUserSelect = ({ className, emptyPlaceholder = '', searchPlaceholder =
fade={false}
className="dtable-ui-user-select-popover"
>
<div className="dtable-ui-user-select-container" ref={userSelectContainerRef} onMouseDown={e => e.stopPropagation()} >
<div className="dtable-ui-user-search-container">
<DtableSearchInput
autoFocus
<div className="dtable-ui-user-select-container" ref={userSelectContainerRef} onMouseDown={e => e.stopPropagation()}>
<div className="seatable-select-search">
<DTableCustomizeSearchInput
className="option-search-control"
placeholder={searchPlaceholder || getLocale('Search_users')}
value={searchValue}
wait={200}
onChange={onSearchValueChanged}
onKeyDown={onKeyDown}
clearValue={() => onSearchValueChanged('')}
autoFocus={true}
isClearable={true}
value={searchValue}
/>
</div>
<div className="dtable-ui-user-list-container" ref={userListContainerRef}>
Expand All @@ -239,7 +244,7 @@ const AsyncUserSelect = ({ className, emptyPlaceholder = '', searchPlaceholder =
<UserItem key={`dtable-ui-user-selector-searched-user-${index}`} user={user} enableShowIDInOrgWhenSearchUser={enableShowIDInOrgWhenSearchUser} />
{selectedUsers.find(u => u.email === user.email) && (
<div className='dtable-ui-collaborator-check-icon'>
<i className="dtable-font dtable-icon-check-mark" aria-hidden="true"></i>
<i className="dtable-font dtable-icon-check" aria-hidden="true"></i>
</div>
)}
</div>
Expand Down Expand Up @@ -269,6 +274,7 @@ AsyncUserSelect.propTypes = {
selectedUsers: PropTypes.array,
loadOptions: PropTypes.func,
modifySelectedUsers: PropTypes.func,
showDeptBtn: PropTypes.bool,
};

export default AsyncUserSelect;
86 changes: 0 additions & 86 deletions src/DTableCustomizeCollaboratorSelect/index.css

This file was deleted.

Loading
Loading