mirror of
https://github.com/glitch-soc/mastodon.git
synced 2025-12-13 15:58:50 +00:00
[Glitch] Visibility Modal fixes
Port 4df50b9c7e to glitch-soc
Signed-off-by: Claire <claire.github-309c@sitedethib.com>
This commit is contained in:
@@ -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>
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user