Regression: Margins on Export Messages (#18682)

* Fix Margins on Export Messages

* Add Content Scroll
pull/18661/head^2
Guilherme Gazzo 5 years ago committed by GitHub
parent a97c1cb32f
commit b5d199e74f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 4
      client/admin/users/UserForm.js
  2. 18
      client/channel/ExportMessages/index.js
  3. 2
      client/components/basic/Buttons/ActionButton.js
  4. 2
      client/components/basic/PlanTag.js
  5. 5
      client/components/basic/Sidebar.js

@ -1,5 +1,5 @@
import React, { useCallback, useMemo, useState } from 'react'; import React, { useCallback, useMemo, useState } from 'react';
import { Field, TextInput, TextAreaInput, PasswordInput, MultiSelectFiltered, Box, ToggleSwitch, Icon, Divider } from '@rocket.chat/fuselage'; import { Field, TextInput, TextAreaInput, PasswordInput, MultiSelectFiltered, Box, ToggleSwitch, Icon, Divider, FieldGroup } from '@rocket.chat/fuselage';
import { useTranslation } from '../../contexts/TranslationContext'; import { useTranslation } from '../../contexts/TranslationContext';
import { isEmail } from '../../../app/utils/lib/isEmail.js'; import { isEmail } from '../../../app/utils/lib/isEmail.js';
@ -47,6 +47,7 @@ export default function UserForm({ formValues, formHandlers, availableRoles, app
const onLoadCustomFields = useCallback((hasCustomFields) => setHasCustomFields(hasCustomFields), []); const onLoadCustomFields = useCallback((hasCustomFields) => setHasCustomFields(hasCustomFields), []);
return <VerticalBar.ScrollableContent is='form' onSubmit={useCallback((e) => e.preventDefault(), [])} { ...props }> return <VerticalBar.ScrollableContent is='form' onSubmit={useCallback((e) => e.preventDefault(), [])} { ...props }>
<FieldGroup>
{ prepend } { prepend }
{useMemo(() => <Field> {useMemo(() => <Field>
<Field.Label>{t('Name')}</Field.Label> <Field.Label>{t('Name')}</Field.Label>
@ -135,5 +136,6 @@ export default function UserForm({ formValues, formHandlers, availableRoles, app
</>} </>}
<CustomFieldsForm onLoadFields={onLoadCustomFields} customFieldsData={customFields} setCustomFieldsData={handleCustomFields}/> <CustomFieldsForm onLoadFields={onLoadCustomFields} customFieldsData={customFields} setCustomFieldsData={handleCustomFields}/>
{ append } { append }
</FieldGroup>
</VerticalBar.ScrollableContent>; </VerticalBar.ScrollableContent>;
} }

@ -1,5 +1,5 @@
import React, { useState, useEffect, useMemo } from 'react'; import React, { useState, useEffect, useMemo } from 'react';
import { Field, TextInput, Select, ButtonGroup, Button, Box, Icon, Callout } from '@rocket.chat/fuselage'; import { Field, TextInput, Select, ButtonGroup, Button, Box, Icon, Callout, FieldGroup } from '@rocket.chat/fuselage';
import { css } from '@rocket.chat/css-in-js'; import { css } from '@rocket.chat/css-in-js';
import { useMutableCallback } from '@rocket.chat/fuselage-hooks'; import { useMutableCallback } from '@rocket.chat/fuselage-hooks';
import toastr from 'toastr'; import toastr from 'toastr';
@ -61,7 +61,7 @@ const FileExport = ({ onCancel, rid }) => {
}; };
return ( return (
<> <FieldGroup>
<Field> <Field>
<Field.Label>{t('Date')}</Field.Label> <Field.Label>{t('Date')}</Field.Label>
<Field.Row> <Field.Row>
@ -83,7 +83,7 @@ const FileExport = ({ onCancel, rid }) => {
{t('Export')} {t('Export')}
</Button> </Button>
</ButtonGroup> </ButtonGroup>
</> </FieldGroup>
); );
}; };
@ -185,12 +185,14 @@ const MailExportForm = ({ onCancel, rid }) => {
}; };
return ( return (
<> <FieldGroup>
<Field>
<Callout onClick={reset} title={t('Messages selected')} type={selectedMessages.length > 0 ? 'success' : 'info'}> <Callout onClick={reset} title={t('Messages selected')} type={selectedMessages.length > 0 ? 'success' : 'info'}>
<p>{`${ selectedMessages.length } Messages selected`}</p> <p>{`${ selectedMessages.length } Messages selected`}</p>
{ selectedMessages.length > 0 && <Box is='p' className={clickable} >{t('Click here to clear the selection')}</Box> } { selectedMessages.length > 0 && <Box is='p' className={clickable} >{t('Click here to clear the selection')}</Box> }
{ selectedMessages.length === 0 && <Box is='p'>{t('Click_the_messages_you_would_like_to_send_by_email')}</Box> } { selectedMessages.length === 0 && <Box is='p'>{t('Click_the_messages_you_would_like_to_send_by_email')}</Box> }
</Callout> </Callout>
</Field>
<Field> <Field>
<Field.Label>{t('To_users')}</Field.Label> <Field.Label>{t('To_users')}</Field.Label>
<Field.Row> <Field.Row>
@ -220,7 +222,7 @@ const MailExportForm = ({ onCancel, rid }) => {
{t('Send')} {t('Send')}
</Button> </Button>
</ButtonGroup> </ButtonGroup>
</> </FieldGroup>
); );
}; };
@ -240,16 +242,18 @@ export const ExportMessages = function ExportMessages({ rid, tabBar }) {
{t('Export_Messages')} {t('Export_Messages')}
<VerticalBar.Close onClick={() => tabBar.close()} /> <VerticalBar.Close onClick={() => tabBar.close()} />
</VerticalBar.Header> </VerticalBar.Header>
<VerticalBar.Content> <VerticalBar.ScrollableContent>
<FieldGroup>
<Field> <Field>
<Field.Label>{t('Method')}</Field.Label> <Field.Label>{t('Method')}</Field.Label>
<Field.Row> <Field.Row>
<Select value={type} onChange={(value) => setType(value)} placeholder={t('Type')} options={exportOptions}/> <Select value={type} onChange={(value) => setType(value)} placeholder={t('Type')} options={exportOptions}/>
</Field.Row> </Field.Row>
</Field> </Field>
</FieldGroup>
{type && type === 'file' && <FileExport rid={rid} onCancel={() => tabBar.close()} />} {type && type === 'file' && <FileExport rid={rid} onCancel={() => tabBar.close()} />}
{type && type === 'email' && <MailExportForm rid={rid} onCancel={() => tabBar.close()} />} {type && type === 'email' && <MailExportForm rid={rid} onCancel={() => tabBar.close()} />}
</VerticalBar.Content> </VerticalBar.ScrollableContent>
</VerticalBar> </VerticalBar>
); );
}; };

@ -1,4 +1,4 @@
import React from 'react'; import React from 'react';
import { Button, Icon } from '@rocket.chat/fuselage'; import { Button, Icon } from '@rocket.chat/fuselage';
// TODO fuselage // TODO fuselage
export const ActionButton = ({ icon, ...props }) => <Button {...props} square ghost small><Icon name={icon} size='x20'/></Button>; export const ActionButton = ({ icon, ...props }) => <Button {...props} square ghost small flexShrink={0}><Icon name={icon} size='x20'/></Button>;

@ -16,7 +16,7 @@ function PlanTag() {
})(); })();
}, []); }, []);
return plans.map(({ plan, background }) => <Tag key={plan} backgroundColor={background} marginInline='x4' color='#fff' textTransform='capitalize'>{plan}</Tag>); return plans.map(({ plan, background }) => <Tag key={plan} verticalAlign='middle' backgroundColor={background} marginInline='x4' color='#fff' textTransform='capitalize'>{plan}</Tag>);
} }
export default PlanTag; export default PlanTag;

@ -1,9 +1,10 @@
import React, { useMemo } from 'react'; import React, { useMemo } from 'react';
import { css } from '@rocket.chat/css-in-js'; import { css } from '@rocket.chat/css-in-js';
import { Box, Scrollable, Button, Icon } from '@rocket.chat/fuselage'; import { Box, Scrollable, Icon } from '@rocket.chat/fuselage';
import { useTranslation } from '../../contexts/TranslationContext'; import { useTranslation } from '../../contexts/TranslationContext';
import { useRoutePath } from '../../contexts/RouterContext'; import { useRoutePath } from '../../contexts/RouterContext';
import { ActionButton } from './Buttons/ActionButton';
const Sidebar = ({ children, ...props }) => <Box display='flex' flexDirection='column' h='100vh' {...props}> const Sidebar = ({ children, ...props }) => <Box display='flex' flexDirection='column' h='100vh' {...props}>
{children} {children}
@ -18,7 +19,7 @@ const Content = ({ children, ...props }) => <Scrollable {...props}>
const Header = ({ title, onClose, children = undefined, ...props }) => <Box is='header' display='flex' flexDirection='column' pb='x16' {...props}> const Header = ({ title, onClose, children = undefined, ...props }) => <Box is='header' display='flex' flexDirection='column' pb='x16' {...props}>
{(title || onClose) && <Box display='flex' flexDirection='row' alignItems='center' pi='x24' justifyContent='space-between' flexGrow={1}> {(title || onClose) && <Box display='flex' flexDirection='row' alignItems='center' pi='x24' justifyContent='space-between' flexGrow={1}>
{title && <Box color='neutral-800' fontSize='p1' fontWeight='p1' flexShrink={1} withTruncatedText>{title}</Box>} {title && <Box color='neutral-800' fontSize='p1' fontWeight='p1' flexShrink={1} withTruncatedText>{title}</Box>}
{onClose && <Button square small ghost onClick={onClose}><Icon name='cross' size='x20'/></Button>} {onClose && <ActionButton icon='cross' onClick={onClose}/>}
</Box>} </Box>}
{children} {children}
</Box>; </Box>;

Loading…
Cancel
Save