feat: Standardize button sizes and icons across multiple manager components for improved UI consistency
Publish Fast Tabler Docker image / build-and-push-fast (push) Successful in 6m14s

This commit is contained in:
2025-08-12 13:08:06 +07:00
parent 026d2a9379
commit f06a433d77
8 changed files with 35 additions and 35 deletions
+4 -4
View File
@@ -605,13 +605,13 @@ function ASNsNewManager() {
communities={communities}
className={`form-control d-inline-block w-auto me-2${isValidCommunity(editingValue) ? '' : ' is-invalid'}`}
/>
<button className="btn btn-success btn-icon me-1" onClick={() => handleSaveEdit(item.asn)} disabled={!isValidCommunity(editingValue)}><IconCheck size={18} /></button>
<button className="btn btn-secondary btn-icon" onClick={handleCancelEdit}><IconX size={18} /></button>
<button className="btn btn-success btn-icon btn-sm me-1" onClick={() => handleSaveEdit(item.asn)} disabled={!isValidCommunity(editingValue)}><IconCheck size={16} /></button>
<button className="btn btn-secondary btn-icon btn-sm" onClick={handleCancelEdit}><IconX size={16} /></button>
</>
) : (
<>
<button className="btn btn-outline-primary btn-icon me-1" onClick={() => handleEdit(item)}><IconEdit size={18} /></button>
<button className="btn btn-outline-danger btn-icon" onClick={() => confirmDelete(item)}><IconTrash size={18} /></button>
<button className="btn btn-outline-primary btn-icon btn-sm me-1" onClick={() => handleEdit(item)}><IconEdit size={16} /></button>
<button className="btn btn-outline-danger btn-icon btn-sm" onClick={() => confirmDelete(item)}><IconTrash size={16} /></button>
</>
)}
</td>
+1 -1
View File
@@ -278,7 +278,7 @@ function AutoUrlManager() {
</td>
<td className="text-end">
<button
className="btn btn-outline-danger btn-sm"
className="btn btn-outline-danger btn-icon btn-sm"
onClick={() => removeUrl(index)}
disabled={saving || processing}
>
+6 -6
View File
@@ -835,14 +835,14 @@ function BillingManager() {
<td>
<div className="btn-list">
<button
className="btn btn-outline-primary btn-icon"
className="btn btn-outline-primary btn-icon btn-sm"
onClick={() => handleEditItem(item)}
title="Редактировать"
>
<IconEdit size={18} />
<IconEdit size={16} />
</button>
<button
className="btn btn-outline-success btn-icon"
className="btn btn-outline-success btn-icon btn-sm"
onClick={() => {
setPaymentDraft({
serverId: item.id,
@@ -855,14 +855,14 @@ function BillingManager() {
}}
title="Добавить платеж"
>
<IconPlus size={18} />
<IconPlus size={16} />
</button>
<button
className="btn btn-outline-danger btn-icon"
className="btn btn-outline-danger btn-icon btn-sm"
onClick={() => handleDeleteItem(item)}
title="Удалить"
>
<IconTrash size={18} />
<IconTrash size={16} />
</button>
</div>
</td>
+4 -4
View File
@@ -400,13 +400,13 @@ function DataManager({ entityName, entityKey, placeholder }) {
onKeyDown={e => handleEditKeyDown(e, item.domain)}
style={{maxWidth: 120}}
/>
<button className="btn btn-success btn-icon me-1" onClick={() => handleSaveEdit(item.domain)}><IconCheck size={18} /></button>
<button className="btn btn-secondary btn-icon" onClick={handleCancelEdit}><IconX size={18} /></button>
<button className="btn btn-success btn-icon btn-sm me-1" onClick={() => handleSaveEdit(item.domain)}><IconCheck size={16} /></button>
<button className="btn btn-secondary btn-icon btn-sm" onClick={handleCancelEdit}><IconX size={16} /></button>
</>
) : (
<>
<button className="btn btn-outline-primary btn-icon me-1" onClick={() => handleEdit(item)}><IconEdit size={18} /></button>
<button className="btn btn-outline-danger btn-icon" onClick={() => confirmDelete(item)}><IconTrash size={18} /></button>
<button className="btn btn-outline-primary btn-icon btn-sm me-1" onClick={() => handleEdit(item)}><IconEdit size={16} /></button>
<button className="btn btn-outline-danger btn-icon btn-sm" onClick={() => confirmDelete(item)}><IconTrash size={16} /></button>
</>
)}
</td>
+4 -4
View File
@@ -613,13 +613,13 @@ function DomainsNewManager() {
communities={communities}
className={`form-control d-inline-block w-auto me-2${isValidCommunity(editingValue) ? '' : ' is-invalid'}`}
/>
<button className="btn btn-success btn-icon me-1" onClick={() => handleSaveEdit(item.domain)} disabled={!isValidCommunity(editingValue)}><IconCheck size={18} /></button>
<button className="btn btn-secondary btn-icon" onClick={handleCancelEdit}><IconX size={18} /></button>
<button className="btn btn-success btn-icon btn-sm me-1" onClick={() => handleSaveEdit(item.domain)} disabled={!isValidCommunity(editingValue)}><IconCheck size={16} /></button>
<button className="btn btn-secondary btn-icon btn-sm" onClick={handleCancelEdit}><IconX size={16} /></button>
</>
) : (
<>
<button className="btn btn-outline-primary btn-icon me-1" onClick={() => handleEdit(item)}><IconEdit size={18} /></button>
<button className="btn btn-outline-danger btn-icon" onClick={() => confirmDelete(item)}><IconTrash size={18} /></button>
<button className="btn btn-outline-primary btn-icon btn-sm me-1" onClick={() => handleEdit(item)}><IconEdit size={16} /></button>
<button className="btn btn-outline-danger btn-icon btn-sm" onClick={() => confirmDelete(item)}><IconTrash size={16} /></button>
</>
)}
</td>
+6 -6
View File
@@ -1312,22 +1312,22 @@ function FilterManager() {
</>
) : (
<>
<button
className="btn btn-outline-primary btn-icon btn-sm"
<button
className="btn btn-outline-primary btn-icon btn-sm"
onClick={() => startInlineEdit(filter)}
title="Редактировать фильтр"
>
<IconEdit size={16} />
<IconEdit size={16} />
</button>
<button
className="btn btn-outline-danger btn-icon btn-sm"
<button
className="btn btn-outline-danger btn-icon btn-sm"
onClick={() => {
setFilterToDelete(filter);
setDeleteFilterModalOpen(true);
}}
title="Удалить фильтр"
>
<IconTrash size={16} />
<IconTrash size={16} />
</button>
</>
)}
+4 -4
View File
@@ -621,13 +621,13 @@ function IPRangesManager() {
communities={communities}
className={`form-control d-inline-block w-auto me-2${isValidCommunity(editingValue) ? '' : ' is-invalid'}`}
/>
<button className="btn btn-success btn-icon me-1" onClick={() => handleSaveEdit(item.ipRange)} disabled={!isValidCommunity(editingValue)}><IconCheck size={18} /></button>
<button className="btn btn-secondary btn-icon" onClick={handleCancelEdit}><IconX size={18} /></button>
<button className="btn btn-success btn-icon btn-sm me-1" onClick={() => handleSaveEdit(item.ipRange)} disabled={!isValidCommunity(editingValue)}><IconCheck size={16} /></button>
<button className="btn btn-secondary btn-icon btn-sm" onClick={handleCancelEdit}><IconX size={16} /></button>
</>
) : (
<>
<button className="btn btn-outline-primary btn-icon me-1" onClick={() => handleEdit(item)}><IconEdit size={18} /></button>
<button className="btn btn-outline-danger btn-icon" onClick={() => confirmDelete(item)}><IconTrash size={18} /></button>
<button className="btn btn-outline-primary btn-icon btn-sm me-1" onClick={() => handleEdit(item)}><IconEdit size={16} /></button>
<button className="btn btn-outline-danger btn-icon btn-sm" onClick={() => confirmDelete(item)}><IconTrash size={16} /></button>
</>
)}
</td>
+6 -6
View File
@@ -632,14 +632,14 @@ function ServerManager() {
</td>
<td className="text-end w-1" style={{ minWidth: 140 }}>
<div className="btn-list gap-1 mb-0">
<button className="btn btn-icon btn-sm btn-outline-primary rounded" title="Ссылка" onClick={() => handleGenerateLink(server)} onContextMenu={(e) => { e.preventDefault(); quickCopyLink(server); }}>
<IconLink size={18} />
<button className="btn btn-outline-primary btn-icon btn-sm" title="Ссылка" onClick={() => handleGenerateLink(server)} onContextMenu={(e) => { e.preventDefault(); quickCopyLink(server); }}>
<IconLink size={16} />
</button>
<button className="btn btn-icon btn-sm btn-outline-secondary rounded" title="Редактировать" onClick={() => handleEdit(server)}>
<IconEdit size={18} />
<button className="btn btn-outline-secondary btn-icon btn-sm" title="Редактировать" onClick={() => handleEdit(server)}>
<IconEdit size={16} />
</button>
<button className="btn btn-icon btn-sm btn-outline-danger rounded" title="Удалить" onClick={() => confirmDelete(server)}>
<IconTrash size={18} />
<button className="btn btn-outline-danger btn-icon btn-sm" title="Удалить" onClick={() => confirmDelete(server)}>
<IconTrash size={16} />
</button>
</div>
</td>