style(mod queue): align title with table when filter by board is not rendered

This commit is contained in:
plebeius
2026-01-11 17:34:35 +01:00
parent 070203b5a7
commit acd6514e31
2 changed files with 74 additions and 36 deletions
+21 -4
View File
@@ -5,6 +5,15 @@
}
.header {
margin-bottom: 10px;
}
.title {
font-size: 1.5em;
font-weight: bold;
}
.controls {
display: flex;
justify-content: space-between;
align-items: center;
@@ -13,9 +22,14 @@
gap: 10px;
}
.title {
font-size: 1.5em;
font-weight: bold;
.controlsLeft {
display: flex;
align-items: center;
}
.controlsRight {
display: flex;
align-items: center;
}
.alertThresholdSetting {
@@ -270,7 +284,6 @@ span.reject:hover {
/* ModQueueBoardFilter styles */
.filterContainer {
margin-bottom: 10px;
display: flex;
align-items: center;
gap: 8px;
@@ -354,6 +367,10 @@ span.reject:hover {
}
.header {
margin-bottom: 10px;
}
.controls {
flex-direction: column;
align-items: flex-start;
}
+53 -32
View File
@@ -475,42 +475,63 @@ export const ModQueueView = ({ boardIdentifier: propBoardIdentifier }: ModQueueV
[hasMore, subplebbitAddresses],
);
const alertThresholdControl = (
<div className={styles.alertThresholdSetting}>
<label>
{t('alert_threshold')}:
<input
type='number'
min='1'
step={alertThresholdUnit === 'minutes' ? '1' : '1'}
value={alertThresholdValue}
onChange={(e) => setAlertThreshold(Number(e.target.value), alertThresholdUnit)}
className={styles.alertThresholdInput}
/>
<select
value={alertThresholdUnit}
onChange={(e) => {
const newUnit = e.target.value as 'hours' | 'minutes';
const newValue =
alertThresholdUnit === 'hours' && newUnit === 'minutes'
? alertThresholdValue * 60
: alertThresholdUnit === 'minutes' && newUnit === 'hours'
? Math.round(alertThresholdValue / 60)
: alertThresholdValue;
setAlertThreshold(Math.max(1, newValue), newUnit);
}}
>
<option value='minutes'>{t('minutes')}</option>
<option value='hours'>{t('hours')}</option>
</select>
</label>
</div>
);
return (
<div className={styles.container}>
<div className={styles.header}>
<div className={styles.title}>{t('moderation_queue')}</div>
<div className={styles.alertThresholdSetting}>
<label>
{t('alert_threshold')}:
<input
type='number'
min='1'
step={alertThresholdUnit === 'minutes' ? '1' : '1'}
value={alertThresholdValue}
onChange={(e) => setAlertThreshold(Number(e.target.value), alertThresholdUnit)}
className={styles.alertThresholdInput}
/>
<select
value={alertThresholdUnit}
onChange={(e) => {
const newUnit = e.target.value as 'hours' | 'minutes';
const newValue =
alertThresholdUnit === 'hours' && newUnit === 'minutes'
? alertThresholdValue * 60
: alertThresholdUnit === 'minutes' && newUnit === 'hours'
? Math.round(alertThresholdValue / 60)
: alertThresholdValue;
setAlertThreshold(Math.max(1, newValue), newUnit);
}}
>
<option value='minutes'>{t('minutes')}</option>
<option value='hours'>{t('hours')}</option>
</select>
</label>
{!resolvedAddress && (
<div className={styles.header}>
<div className={styles.title}>{t('moderation_queue')}</div>
</div>
</div>
)}
{!resolvedAddress && <ModQueueBoardFilter subplebbits={subplebbitsWithMetadata} />}
<div className={styles.controls}>
{!resolvedAddress ? (
<>
<div className={styles.controlsLeft}>
<ModQueueBoardFilter subplebbits={subplebbitsWithMetadata} />
</div>
<div className={styles.controlsRight}>{alertThresholdControl}</div>
</>
) : (
<>
<div className={styles.controlsLeft}>
<div className={styles.title}>{t('moderation_queue')}</div>
</div>
<div className={styles.controlsRight}>{alertThresholdControl}</div>
</>
)}
</div>
{feed.length === 0 && !hasMore ? (
<div className={styles.empty}>{t('queue_is_empty')}</div>