Dialogs: Fix notification when joining; Management / Invites: Colored icons (#1958)
This commit is contained in:
parent
9533ed449b
commit
4b2ad0e729
@ -66,9 +66,11 @@ const Dialogs: FC<StateProps> = ({ dialogs }) => {
|
|||||||
acceptInviteConfirmation({
|
acceptInviteConfirmation({
|
||||||
hash,
|
hash,
|
||||||
});
|
});
|
||||||
showNotification({
|
if (isRequestNeeded) {
|
||||||
message: isChannel ? lang('RequestToJoinChannelSentDescription') : lang('RequestToJoinGroupSentDescription'),
|
showNotification({
|
||||||
});
|
message: isChannel ? lang('RequestToJoinChannelSentDescription') : lang('RequestToJoinGroupSentDescription'),
|
||||||
|
});
|
||||||
|
}
|
||||||
closeModal();
|
closeModal();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -224,6 +224,25 @@ const ManageInvites: FC<OwnProps & StateProps> = ({
|
|||||||
return text;
|
return text;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const getInviteIconClass = (invite: ApiExportedInvite) => {
|
||||||
|
const {
|
||||||
|
usage = 0, usageLimit, isRevoked, expireDate,
|
||||||
|
} = invite;
|
||||||
|
if (isRevoked) {
|
||||||
|
return 'link-status-icon-gray';
|
||||||
|
}
|
||||||
|
if (usageLimit && usage < usageLimit) {
|
||||||
|
return 'link-status-icon-green';
|
||||||
|
}
|
||||||
|
if (expireDate) {
|
||||||
|
const diff = (expireDate - getServerTime(serverTimeOffset)) * 1000;
|
||||||
|
if (diff <= 0) {
|
||||||
|
return 'link-status-icon-red';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 'link-status-icon-blue';
|
||||||
|
};
|
||||||
|
|
||||||
const prepareContextActions = (invite: ApiExportedInvite) => {
|
const prepareContextActions = (invite: ApiExportedInvite) => {
|
||||||
const actions = [];
|
const actions = [];
|
||||||
actions.push({
|
actions.push({
|
||||||
@ -318,7 +337,7 @@ const ManageInvites: FC<OwnProps & StateProps> = ({
|
|||||||
{(!temporalInvites || !temporalInvites.length) && <NothingFound text="No links found" key="nothing" />}
|
{(!temporalInvites || !temporalInvites.length) && <NothingFound text="No links found" key="nothing" />}
|
||||||
{temporalInvites?.map((invite) => (
|
{temporalInvites?.map((invite) => (
|
||||||
<ListItem
|
<ListItem
|
||||||
icon="link"
|
leftElement={<i className={`icon-link link-status-icon ${getInviteIconClass(invite)}`} />}
|
||||||
secondaryIcon="more"
|
secondaryIcon="more"
|
||||||
multiline
|
multiline
|
||||||
// eslint-disable-next-line react/jsx-no-bind
|
// eslint-disable-next-line react/jsx-no-bind
|
||||||
@ -347,7 +366,7 @@ const ManageInvites: FC<OwnProps & StateProps> = ({
|
|||||||
</ListItem>
|
</ListItem>
|
||||||
{revokedExportedInvites?.map((invite) => (
|
{revokedExportedInvites?.map((invite) => (
|
||||||
<ListItem
|
<ListItem
|
||||||
icon="link"
|
leftElement={<i className={`icon-link link-status-icon ${getInviteIconClass(invite)}`} />}
|
||||||
secondaryIcon="more"
|
secondaryIcon="more"
|
||||||
multiline
|
multiline
|
||||||
// eslint-disable-next-line react/jsx-no-bind
|
// eslint-disable-next-line react/jsx-no-bind
|
||||||
|
|||||||
@ -206,6 +206,36 @@
|
|||||||
margin-bottom: 0.5rem;
|
margin-bottom: 0.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.ListItem-button {
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.link-status-icon {
|
||||||
|
display: block;
|
||||||
|
aspect-ratio: 1;
|
||||||
|
border-radius: 50%;
|
||||||
|
padding: 0.5rem;
|
||||||
|
position: static !important;
|
||||||
|
color: white !important;
|
||||||
|
margin-right: 1rem !important;
|
||||||
|
|
||||||
|
&-gray {
|
||||||
|
background-color: #707579;
|
||||||
|
}
|
||||||
|
|
||||||
|
&-green {
|
||||||
|
background-color: #4fae4e;
|
||||||
|
}
|
||||||
|
|
||||||
|
&-red {
|
||||||
|
background-color: #e17076;
|
||||||
|
}
|
||||||
|
|
||||||
|
&-blue {
|
||||||
|
background-color: #3390ec;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.invite-title {
|
.invite-title {
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user