Skip to content

Commit

Permalink
Merge branch 'develop' into reg/threads-scroll
Browse files Browse the repository at this point in the history
  • Loading branch information
kodiakhq[bot] committed Mar 6, 2023
2 parents 1c71183 + a2537e4 commit 5f70c2c
Show file tree
Hide file tree
Showing 7 changed files with 47 additions and 50 deletions.
Expand Up @@ -23,8 +23,7 @@ const EnterpriseDepartmentsModal = ({ closeModal }: { closeModal: () => void }):
closeModal();
};

const tabTypeIsUpgradeYourPlan =
tabType === 'go-fully-featured' || tabType === 'go-fully-featured-registered' || tabType === 'upgrade-your-plan';
const isTypeUpgradeYourPlan = ['go-fully-featured', 'go-fully-featured-registered'].includes(tabType || '');

const talkToExpertLink =
'https://www.rocket.chat/sales-contact?utm_source=rocketchat_app&utm_medium=multiple_queues&utm_campaign=in_product_ctas';
Expand All @@ -48,17 +47,15 @@ const EnterpriseDepartmentsModal = ({ closeModal }: { closeModal: () => void }):
<Box fontSize={20} fontWeight={700} lineHeight={28} mbe={28}>
{t('Enterprise_Departments_title')}
</Box>
{tabType === 'go-fully-featured' || tabType === 'go-fully-featured-registered' || tabType === 'upgrade-your-plan'
? t('Enterprise_Departments_description_upgrade')
: t('Enterprise_Departments_description_free_trial')}
{isTypeUpgradeYourPlan ? t('Enterprise_Departments_description_free_trial') : t('Enterprise_Departments_description_upgrade')}
</Modal.Content>
<Modal.Footer>
{hasPermission('view-statistics') ? (
<Modal.FooterControllers>
<Button is='a' href={talkToExpertLink} external onClick={onClose} data-qa-id='btn-talk-to-sales'>
{t('Talk_to_an_expert')}
</Button>
{tabTypeIsUpgradeYourPlan ? (
{isTypeUpgradeYourPlan ? (
<Button is='a' href={freeTrialLink} external primary data-qa-id='upgrade-now'>
{t('Start_free_trial')}
</Button>
Expand Down
@@ -1,6 +1,6 @@
import type { IUserStatus } from '@rocket.chat/core-typings';
import type { SelectOption } from '@rocket.chat/fuselage';
import { Button, ButtonGroup, TextInput, Field, Select, Icon } from '@rocket.chat/fuselage';
import { FieldGroup, Button, ButtonGroup, TextInput, Field, Select, Icon } from '@rocket.chat/fuselage';
import { useSetModal, useRoute, useToastMessageDispatch, useTranslation, useEndpoint } from '@rocket.chat/ui-contexts';
import type { ReactElement } from 'react';
import React, { useCallback } from 'react';
Expand Down Expand Up @@ -87,47 +87,49 @@ const CustomUserStatusForm = ({ onClose, onReload, status }: CustomUserStatusFor

return (
<VerticalBar.ScrollableContent>
<Field is='form' onSubmit={handleSubmit(handleSave)}>
<Field.Label>{t('Name')}</Field.Label>
<Field.Row>
<TextInput {...register('name', { required: true })} placeholder={t('Name')} />
</Field.Row>
{errors?.name && <Field.Error>{t('error-the-field-is-required', { field: t('Name') })}</Field.Error>}
</Field>
<Field>
<Field.Label>{t('Presence')}</Field.Label>
<Field.Row>
<Controller
name='statusType'
control={control}
rules={{ required: true }}
render={({ field }): ReactElement => <Select {...field} placeholder={t('Presence')} options={presenceOptions} />}
/>
</Field.Row>
{errors?.statusType && <Field.Error>{t('error-the-field-is-required', { field: t('Presence') })}</Field.Error>}
</Field>
<Field>
<Field.Row>
<ButtonGroup stretch w='full'>
<Button onClick={onClose}>{t('Cancel')}</Button>
<Button primary type='submit' disabled={!isDirty}>
{t('Save')}
</Button>
</ButtonGroup>
</Field.Row>
</Field>
{_id && (
<FieldGroup is='form' onSubmit={handleSubmit(handleSave)}>
<Field>
<Field.Label>{t('Name')}</Field.Label>
<Field.Row>
<TextInput {...register('name', { required: true })} placeholder={t('Name')} />
</Field.Row>
{errors?.name && <Field.Error>{t('error-the-field-is-required', { field: t('Name') })}</Field.Error>}
</Field>
<Field>
<Field.Label>{t('Presence')}</Field.Label>
<Field.Row>
<Controller
name='statusType'
control={control}
rules={{ required: true }}
render={({ field }): ReactElement => <Select {...field} placeholder={t('Presence')} options={presenceOptions} />}
/>
</Field.Row>
{errors?.statusType && <Field.Error>{t('error-the-field-is-required', { field: t('Presence') })}</Field.Error>}
</Field>
<Field>
<Field.Row>
<ButtonGroup stretch w='full'>
<Button danger onClick={handleDeleteStatus}>
<Icon name='trash' mie='x4' />
{t('Delete')}
<Button onClick={onClose}>{t('Cancel')}</Button>
<Button primary type='submit' disabled={!isDirty}>
{t('Save')}
</Button>
</ButtonGroup>
</Field.Row>
</Field>
)}
{_id && (
<Field>
<Field.Row>
<ButtonGroup stretch w='full'>
<Button danger onClick={handleDeleteStatus}>
<Icon name='trash' mie='x4' />
{t('Delete')}
</Button>
</ButtonGroup>
</Field.Row>
</Field>
)}
</FieldGroup>
</VerticalBar.ScrollableContent>
);
};
Expand Down
2 changes: 1 addition & 1 deletion apps/meteor/client/views/marketplace/AppMenu.js
Expand Up @@ -344,7 +344,7 @@ function AppMenu({ app, isAppDetailsPage, ...props }) {
{t('Enable')}
</>
),
disabled: !appCountQuery?.data?.hasUnlimitedApps && appCountQuery?.data?.enabled >= appCountQuery?.data?.limit,
disabled: !app.migrated && !appCountQuery?.data?.hasUnlimitedApps && appCountQuery?.data?.enabled >= appCountQuery?.data?.limit,
action: handleEnable,
},
}),
Expand Down
Expand Up @@ -3,6 +3,7 @@ import { useEndpoint } from '@rocket.chat/ui-contexts';
import { useCallback } from 'react';

import { Messages } from '../../../../../../app/models/client';
import { onClientMessageReceived } from '../../../../../lib/onClientMessageReceived';
import { mapMessageFromApi } from '../../../../../lib/utils/mapMessageFromApi';

export const useGetMessageByID = () => {
Expand All @@ -12,7 +13,8 @@ export const useGetMessageByID = () => {
async (mid: IMessage['_id']) => {
try {
const { message: rawMessage } = await getMessage({ msgId: mid });
const message = mapMessageFromApi(rawMessage);
const mappedMessage = mapMessageFromApi(rawMessage);
const message = (await onClientMessageReceived(mappedMessage)) || mappedMessage;
Messages.upsert({ _id: message._id }, { $set: message });
return message;
} catch (error) {
Expand Down
2 changes: 1 addition & 1 deletion apps/meteor/client/views/room/providers/RoomProvider.tsx
Expand Up @@ -25,7 +25,7 @@ type RoomProviderProps = {
const RoomProvider = ({ rid, children }: RoomProviderProps): ReactElement => {
useRoomRolesManagement(rid);

const roomQuery = useReactiveQuery(['rooms', rid], ({ rooms }) => rooms.findOne({ _id: rid }) ?? null);
const roomQuery = useReactiveQuery(['rooms', rid], ({ rooms }) => rooms.findOne({ _id: rid }));

// TODO: the following effect is a workaround while we don't have a general and definitive solution for it
const homeRoute = useRoute('home');
Expand Down
2 changes: 1 addition & 1 deletion apps/meteor/tests/e2e/email-inboxes.spec.ts
Expand Up @@ -43,7 +43,7 @@ test.describe.serial('email-inboxes', () => {
});

test('expect delete an email inbox', async () => {
await poAdminEmailInboxes.findEmailInbox(email).click();
await poAdminEmailInboxes.itemRow(email).click();
await poAdminEmailInboxes.btnDelete.click();
await poUtils.btnModalConfirmDelete.click();
await expect(poUtils.toastBarSuccess).toBeVisible();
Expand Down
6 changes: 1 addition & 5 deletions apps/meteor/tests/e2e/page-objects/admin-email-inboxes.ts
Expand Up @@ -62,10 +62,6 @@ export class AdminEmailInboxes {
}

itemRow(name: string): Locator {
return this.page.locator(`td >> text=${name}`);
}

findEmailInbox(email: string): Locator {
return this.page.locator(`td >> text=${email}`);
return this.page.locator(`td >> text="${name}"`);
}
}

0 comments on commit 5f70c2c

Please sign in to comment.