[Glitch] Visibility Modal fixes

Port 4df50b9c7e to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
This commit is contained in:
Echo
2025-08-22 14:34:37 +02:00
committed by Claire
parent f7cd193390
commit 3cc6f8813a
4 changed files with 62 additions and 34 deletions

View File

@@ -1,11 +1,4 @@
import {
forwardRef,
useCallback,
useId,
useImperativeHandle,
useMemo,
useState,
} from 'react';
import { forwardRef, useCallback, useId, useMemo, useState } from 'react';
import type { FC } from 'react';
import { defineMessages, FormattedMessage, useIntl } from 'react-intl';
@@ -16,6 +9,7 @@ import type { ApiQuotePolicy } from '@/flavours/glitch/api_types/quotes';
import { isQuotePolicy } from '@/flavours/glitch/api_types/quotes';
import { isStatusVisibility } from '@/flavours/glitch/api_types/statuses';
import type { StatusVisibility } from '@/flavours/glitch/api_types/statuses';
import { Button } from '@/flavours/glitch/components/button';
import { Dropdown } from '@/flavours/glitch/components/dropdown';
import type { SelectItem } from '@/flavours/glitch/components/dropdown_selector';
import { IconButton } from '@/flavours/glitch/components/icon_button';
@@ -96,7 +90,8 @@ const selectStatusPolicy = createAppSelector(
);
export const VisibilityModal: FC<VisibilityModalProps> = forwardRef(
({ onClose, onChange, statusId }, ref) => {
// eslint-disable-next-line @typescript-eslint/no-unused-vars
({ onClose, onChange, statusId }, _ref) => {
const intl = useIntl();
const currentVisibility = useAppSelector((state) =>
statusId
@@ -172,18 +167,10 @@ export const VisibilityModal: FC<VisibilityModalProps> = forwardRef(
setQuotePolicy(value);
}
}, []);
// Save on close
useImperativeHandle(
ref,
() => ({
getCloseConfirmationMessage() {
onChange(visibility, quotePolicy);
return null;
},
}),
[onChange, quotePolicy, visibility],
);
const handleSave = useCallback(() => {
onChange(visibility, quotePolicy);
onClose();
}, [onChange, onClose, visibility, quotePolicy]);
const privacyDropdownId = useId();
const quoteDropdownId = useId();
@@ -274,6 +261,20 @@ export const VisibilityModal: FC<VisibilityModalProps> = forwardRef(
<QuotePolicyHelper policy={quotePolicy} visibility={visibility} />
</label>
</div>
<div className='dialog-modal__content__actions'>
<Button onClick={onClose} secondary>
<FormattedMessage
id='confirmation_modal.cancel'
defaultMessage='Cancel'
/>
</Button>
<Button onClick={handleSave}>
<FormattedMessage
id='visibility_modal.save'
defaultMessage='Save'
/>
</Button>
</div>
</div>
</div>
);