6.24.0: Кнопка архива рядом с создать доску
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 1m11s
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 1m11s
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "play-life-web",
|
"name": "play-life-web",
|
||||||
"version": "6.23.0",
|
"version": "6.24.0",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite",
|
"dev": "vite",
|
||||||
|
|||||||
@@ -219,11 +219,26 @@
|
|||||||
color: #4f46e5;
|
color: #4f46e5;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Строка с кнопками добавления и архива */
|
||||||
|
.board-actions-row {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-top: 6px;
|
||||||
|
border-top: 1px solid #f3f4f6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.board-actions-separator {
|
||||||
|
width: 1px;
|
||||||
|
height: 24px;
|
||||||
|
background: #e5e7eb;
|
||||||
|
flex-shrink: 0;
|
||||||
|
}
|
||||||
|
|
||||||
/* Кнопка добавления доски */
|
/* Кнопка добавления доски */
|
||||||
.dropdown-item.add-board {
|
.dropdown-item.add-board {
|
||||||
margin-top: 6px;
|
flex: 1;
|
||||||
padding-top: 14px;
|
padding-top: 14px;
|
||||||
border-top: 1px solid #f3f4f6;
|
padding-bottom: 14px;
|
||||||
border-radius: 0 0 12px 12px;
|
border-radius: 0 0 12px 12px;
|
||||||
color: #667eea;
|
color: #667eea;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
@@ -231,6 +246,10 @@
|
|||||||
justify-content: flex-start;
|
justify-content: flex-start;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.board-actions-row .dropdown-item.add-board:not(:last-child) {
|
||||||
|
border-radius: 0 0 0 12px;
|
||||||
|
}
|
||||||
|
|
||||||
.dropdown-item.add-board:hover {
|
.dropdown-item.add-board:hover {
|
||||||
background: linear-gradient(135deg, #667eea08 0%, #764ba208 100%);
|
background: linear-gradient(135deg, #667eea08 0%, #764ba208 100%);
|
||||||
}
|
}
|
||||||
@@ -264,17 +283,16 @@
|
|||||||
height: 20px;
|
height: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Секция архива в дропдауне */
|
/* Кнопка архива в строке действий */
|
||||||
.archive-section {
|
|
||||||
margin-top: 2px;
|
|
||||||
border-top: 1px solid #f3f4f6;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dropdown-item.archive-toggle {
|
.dropdown-item.archive-toggle {
|
||||||
|
flex-shrink: 0;
|
||||||
|
width: auto;
|
||||||
|
padding: 14px 14px;
|
||||||
|
border-radius: 0 0 12px 0;
|
||||||
color: #6b7280;
|
color: #6b7280;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
gap: 12px;
|
gap: 6px;
|
||||||
justify-content: flex-start;
|
justify-content: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dropdown-item.archive-toggle:hover {
|
.dropdown-item.archive-toggle:hover {
|
||||||
@@ -289,13 +307,13 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.archive-toggle-icon {
|
.archive-toggle-icon {
|
||||||
margin-left: auto;
|
font-size: 8px;
|
||||||
font-size: 10px;
|
|
||||||
color: #9ca3af;
|
color: #9ca3af;
|
||||||
}
|
}
|
||||||
|
|
||||||
.archive-list {
|
.archive-list {
|
||||||
padding: 0 4px 4px;
|
padding: 0 4px 4px;
|
||||||
|
border-top: 1px solid #f3f4f6;
|
||||||
}
|
}
|
||||||
|
|
||||||
.archive-loading {
|
.archive-loading {
|
||||||
|
|||||||
@@ -100,6 +100,7 @@ function BoardSelector({
|
|||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
|
<div className="board-actions-row">
|
||||||
<button className="dropdown-item add-board" onClick={onAddBoard}>
|
<button className="dropdown-item add-board" onClick={onAddBoard}>
|
||||||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2">
|
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2">
|
||||||
<circle cx="12" cy="12" r="10"></circle>
|
<circle cx="12" cy="12" r="10"></circle>
|
||||||
@@ -110,7 +111,8 @@ function BoardSelector({
|
|||||||
</button>
|
</button>
|
||||||
|
|
||||||
{archivedBoards.length > 0 && (
|
{archivedBoards.length > 0 && (
|
||||||
<div className="archive-section">
|
<>
|
||||||
|
<div className="board-actions-separator" />
|
||||||
<button
|
<button
|
||||||
className="dropdown-item archive-toggle"
|
className="dropdown-item archive-toggle"
|
||||||
onClick={() => setArchiveExpanded(!archiveExpanded)}
|
onClick={() => setArchiveExpanded(!archiveExpanded)}
|
||||||
@@ -120,13 +122,15 @@ function BoardSelector({
|
|||||||
<rect x="1" y="3" width="22" height="5"></rect>
|
<rect x="1" y="3" width="22" height="5"></rect>
|
||||||
<line x1="10" y1="12" x2="14" y2="12"></line>
|
<line x1="10" y1="12" x2="14" y2="12"></line>
|
||||||
</svg>
|
</svg>
|
||||||
<span>Архив</span>
|
|
||||||
<span className="archive-toggle-icon">
|
<span className="archive-toggle-icon">
|
||||||
{archiveExpanded ? '▼' : '▶'}
|
{archiveExpanded ? '▼' : '▶'}
|
||||||
</span>
|
</span>
|
||||||
</button>
|
</button>
|
||||||
|
</>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
|
||||||
{archiveExpanded && (
|
{archiveExpanded && archivedBoards.length > 0 && (
|
||||||
<div className="archive-list">
|
<div className="archive-list">
|
||||||
{archivedBoards.map(board => (
|
{archivedBoards.map(board => (
|
||||||
<button
|
<button
|
||||||
@@ -135,13 +139,14 @@ function BoardSelector({
|
|||||||
onClick={() => handleSelectBoard(board)}
|
onClick={() => handleSelectBoard(board)}
|
||||||
>
|
>
|
||||||
<span className="item-name archive-item-name">{board.name}</span>
|
<span className="item-name archive-item-name">{board.name}</span>
|
||||||
|
<div className="item-meta">
|
||||||
|
<span className={`item-members ${board.is_owner ? 'filled' : 'outline'}`}>{board.member_count + 1}</span>
|
||||||
|
</div>
|
||||||
</button>
|
</button>
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
)}
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user