# Conflicts:
#	web/ASC.Web.Client/src/store/settings/reducer.js
This commit is contained in:
Nikita Gopienko 2019-11-06 11:38:07 +03:00
commit 87e76575d8
23 changed files with 1768 additions and 1603 deletions

View File

@ -173,6 +173,56 @@ namespace ASC.Api.Settings
return listOfTimezones; return listOfTimezones;
} }
[AllowAnonymous]
[Read("greetingsettings")]
public string GetGreetingSettings()
{
return Tenant.Name;
}
[Create("greetingsettings")]
public object SaveGreetingSettings(GreetingSettingsModel model)
{
try
{
SecurityContext.DemandPermissions(Tenant, SecutiryConstants.EditPortalSettings);
Tenant.Name = model.Title;
CoreContext.TenantManager.SaveTenant(Tenant);
MessageService.Send(MessageAction.GreetingSettingsUpdated);
return new { Status = 1, Message = Resource.SuccessfullySaveGreetingSettingsMessage };
}
catch (Exception e)
{
return new { Status = 0, Message = e.Message.HtmlEncode() };
}
}
[Create("greetingsettings/restore")]
public object RestoreGreetingSettings()
{
try
{
SecurityContext.DemandPermissions(Tenant, SecutiryConstants.EditPortalSettings);
TenantInfoSettings.Load().RestoreDefaultTenantName();
//_tenantInfoSettings.Save();
return new
{
Status = 1,
Message = Resource.SuccessfullySaveGreetingSettingsMessage,
CompanyName = CoreContext.TenantManager.GetCurrentTenant().Name
};
}
catch (Exception e)
{
return new { Status = 0, Message = e.Message.HtmlEncode() };
}
}
[Read("recalculatequota")] [Read("recalculatequota")]
public void RecalculateQuota() public void RecalculateQuota()
{ {

View File

@ -0,0 +1,7 @@
namespace ASC.Web.Api.Models
{
public class GreetingSettingsModel
{
public string Title { get; set; }
}
}

View File

@ -25,9 +25,9 @@ import { login } from "../../../store/auth/actions";
import styled from "styled-components"; import styled from "styled-components";
import { useTranslation } from "react-i18next"; import { useTranslation } from "react-i18next";
import i18n from "./i18n"; import i18n from "./i18n";
import { welcomePageTitle } from "./../../../helpers/customNames";
import { sendInstructionsToChangePassword } from "../../../store/services/api"; import { sendInstructionsToChangePassword } from "../../../store/services/api";
import SubModalDialog from "./sub-components/modal-dialog"; import SubModalDialog from "./sub-components/modal-dialog";
import { getGreetingSettings } from '../../../store/services/api';
const FormContainer = styled(Container)` const FormContainer = styled(Container)`
margin-top: 70px; margin-top: 70px;
@ -106,6 +106,7 @@ const Form = props => {
const [email, setEmail] = useState(""); const [email, setEmail] = useState("");
const [isDisabled, setIsDisabled] = useState(false); const [isDisabled, setIsDisabled] = useState(false);
const [isChecked, setIsisChecked] = useState(false); const [isChecked, setIsisChecked] = useState(false);
const [greetingTitle, setGreetingTitle] = useState('');
const onClick = () => { const onClick = () => {
setOpenDialog(true); setOpenDialog(true);
@ -182,6 +183,13 @@ const Form = props => {
}; };
}, [onKeyPress, params, language]); }, [onKeyPress, params, language]);
useEffect(() => {
getGreetingSettings()
.then((res) => {
setGreetingTitle(res)
});
}, []);
const onChangePassword = event => { const onChangePassword = event => {
setPassword(event.target.value); setPassword(event.target.value);
!passwordValid && setPasswordValid(true); !passwordValid && setPasswordValid(true);
@ -212,7 +220,7 @@ const Form = props => {
top top
/> />
<CardTitle className="card-title"> <CardTitle className="card-title">
{t("CustomWelcomePageTitle", { welcomePageTitle })} {greetingTitle}
</CardTitle> </CardTitle>
</Card> </Card>
</Col> </Col>

View File

@ -1,8 +1,9 @@
import React from "react"; import React from "react";
import { connect } from "react-redux"; import { connect } from "react-redux";
import { withTranslation } from 'react-i18next'; import { withTranslation } from 'react-i18next';
import { FieldContainer, Text, ComboBox, Loader, Button, toastr, Link } from "asc-web-components"; import { FieldContainer, Text, ComboBox, Loader, Button, toastr, Link, TextInput } from "asc-web-components";
import { getCultures, setLanguageAndTime, getPortalTimezones } from '../../../../../store/auth/actions'; import { getCultures, setLanguageAndTime, getPortalTimezones } from '../../../../../store/auth/actions';
import { getGreetingTitle, setGreetingTitle, restoreGreetingTitle } from '../../../../../store/settings/actions';
import styled from 'styled-components'; import styled from 'styled-components';
import { Trans } from 'react-i18next'; import { Trans } from 'react-i18next';
@ -27,6 +28,18 @@ const StyledComponent = styled.div`
margin-top: 20px; margin-top: 20px;
} }
.margin-left {
margin-left: 20px;
}
.settings-block {
margin-bottom: 70px;
}
.input-width {
width: 500px;
}
.dropdown-item-width { .dropdown-item-width {
& > div:first-child { & > div:first-child {
div:first-child{ div:first-child{
@ -40,7 +53,7 @@ class Customization extends React.Component {
constructor(props) { constructor(props) {
super(props); super(props);
const { portalLanguage, portalTimeZoneId, rawCultures, rawTimezones, t } = props; const { portalLanguage, portalTimeZoneId, rawCultures, rawTimezones, t, greetingSettings } = props;
const languages = mapCulturesToArray(rawCultures, t); const languages = mapCulturesToArray(rawCultures, t);
const timezones = mapTimezonesToArray(rawTimezones); const timezones = mapTimezonesToArray(rawTimezones);
@ -51,13 +64,20 @@ class Customization extends React.Component {
timezone: findSelectedItemByKey(timezones, portalTimeZoneId), timezone: findSelectedItemByKey(timezones, portalTimeZoneId),
languages, languages,
language: findSelectedItemByKey(languages, portalLanguage), language: findSelectedItemByKey(languages, portalLanguage),
greetingTitle: greetingSettings,
isLoadingGreeting: false,
} }
} }
componentDidMount() { componentDidMount() {
const { getCultures, portalLanguage, portalTimeZoneId, t, getPortalTimezones } = this.props; const { getCultures, portalLanguage, portalTimeZoneId, t, getPortalTimezones, getGreetingTitle } = this.props;
const { timezones, languages } = this.state; const { timezones, languages, greetingTitle } = this.state;
if (!greetingTitle.length) {
getGreetingTitle()
.then(() => this.setState({ greetingTitle: this.props.greetingSettings }));
}
if (!timezones.length && !languages.length) { if (!timezones.length && !languages.length) {
let languages; let languages;
@ -99,9 +119,38 @@ class Customization extends React.Component {
}) })
} }
onChangeGreetingTitle = (e) => {
this.setState({ greetingTitle: e.target.value })
};
onSaveGreetingSettings = () => {
const { setGreetingTitle, t } = this.props;
this.setState({ isLoadingGreeting: true }, function () {
setGreetingTitle(this.state.greetingTitle)
.then(() => {
this.setState({ isLoadingGreeting: false })
toastr.success(t('SuccessfullySaveGreetingSettingsMessage'));
});
})
}
onRestoreGreetingSettings = () => {
const { restoreGreetingTitle, t } = this.props;
this.setState({ isLoadingGreeting: true }, function () {
restoreGreetingTitle()
.then(() => {
this.setState({
isLoadingGreeting: false,
greetingTitle: this.props.greetingSettings
})
toastr.success(t('SuccessfullySaveGreetingSettingsMessage'));
});
})
}
render() { render() {
const { t, i18n } = this.props; const { t, i18n } = this.props;
const { isLoadedData, languages, language, isLoading, timezones, timezone } = this.state; const { isLoadedData, languages, language, isLoading, timezones, timezone, greetingTitle, isLoadingGreeting } = this.state;
const supportEmail = "documentation@onlyoffice.com"; const supportEmail = "documentation@onlyoffice.com";
const tooltipLanguage = const tooltipLanguage =
<Text.Body fontSize={13}> <Text.Body fontSize={13}>
@ -123,54 +172,94 @@ class Customization extends React.Component {
<Loader className="pageLoader" type="rombs" size={40} /> <Loader className="pageLoader" type="rombs" size={40} />
: <> : <>
<StyledComponent> <StyledComponent>
<Text.Body fontSize={16}>{t('StudioTimeLanguageSettings')}</Text.Body> <div className='settings-block'>
<FieldContainer <Text.Body fontSize={16}>{t('StudioTimeLanguageSettings')}</Text.Body>
id='fieldContainerLanguage' <FieldContainer
className='margin-top' id='fieldContainerLanguage'
labelText={`${t("Language")}:`} className='margin-top'
tooltipContent={tooltipLanguage} labelText={`${t("Language")}:`}
isVertical={true}> tooltipContent={tooltipLanguage}
<ComboBox isVertical={true}>
id='comboBoxLanguage' <ComboBox
options={languages} id='comboBoxLanguage'
selectedOption={language} options={languages}
onSelect={this.onLanguageSelect} selectedOption={language}
isDisabled={isLoading} onSelect={this.onLanguageSelect}
noBorder={false} isDisabled={isLoading}
scaled={false} noBorder={false}
scaledOptions={true} scaled={false}
// dropDownMaxHeight={300} scaledOptions={true}
size='huge' dropDownMaxHeight={300}
/> size='huge'
</FieldContainer> />
</FieldContainer>
<FieldContainer <FieldContainer
id='fieldContainerTimezone' id='fieldContainerTimezone'
labelText={`${t("TimeZone")}:`} labelText={`${t("TimeZone")}:`}
isVertical={true}> isVertical={true}>
<ComboBox <ComboBox
id='comboBoxTimezone' id='comboBoxTimezone'
options={timezones} options={timezones}
selectedOption={timezone} selectedOption={timezone}
onSelect={this.onTimezoneSelect} onSelect={this.onTimezoneSelect}
isDisabled={isLoading} isDisabled={isLoading}
noBorder={false} noBorder={false}
scaled={false} scaled={false}
scaledOptions={true} scaledOptions={true}
dropDownMaxHeight={300} dropDownMaxHeight={300}
size='huge' size='huge'
className='dropdown-item-width' className='dropdown-item-width'
/>
</FieldContainer>
<Button
id='btnSaveLngTZ'
className='margin-top'
primary={true}
size='medium'
label={t('SaveButton')}
isLoading={isLoading}
onClick={this.onSaveLngTZSettings}
/> />
</FieldContainer> </div>
<Button
id='btnSaveLngTZ' <div className='settings-block'>
className='margin-top' <Text.Body fontSize={16}>{t('GreetingSettingsTitle')}</Text.Body>
primary={true} <FieldContainer
size='big' id='fieldContainerWelcomePage'
label={t('SaveButton')} className='margin-top'
isLoading={isLoading} labelText={`${t("GreetingTitle")}:`}
onClick={this.onSaveLngTZSettings} isVertical={true}>
/> <TextInput
className='input-width'
scale={true}
value={greetingTitle}
onChange={this.onChangeGreetingTitle}
isDisabled={isLoadingGreeting}
/>
</FieldContainer>
<Button
id='btnSaveGreetingSetting'
className='margin-top'
primary={true}
size='medium'
label={t('SaveButton')}
isLoading={isLoadingGreeting}
onClick={this.onSaveGreetingSettings}
/>
<Button
id='btnRestoreToDefault'
className='margin-top margin-left'
size='medium'
label={t('RestoreDefaultButton')}
isDisabled={isLoadingGreeting}
onClick={this.onRestoreGreetingSettings}
/>
</div>
</StyledComponent> </StyledComponent>
</> </>
@ -185,7 +274,11 @@ function mapStateToProps(state) {
language: state.auth.user.cultureName || state.auth.settings.culture, language: state.auth.user.cultureName || state.auth.settings.culture,
rawTimezones: state.auth.settings.timezones, rawTimezones: state.auth.settings.timezones,
rawCultures: state.auth.settings.cultures, rawCultures: state.auth.settings.cultures,
greetingSettings: state.settings.greetingSettings,
}; };
} }
export default connect(mapStateToProps, { getCultures, setLanguageAndTime, getPortalTimezones })(withTranslation()(Customization)); export default connect(mapStateToProps, {
getCultures, setLanguageAndTime, getPortalTimezones,
getGreetingTitle, setGreetingTitle, restoreGreetingTitle
})(withTranslation()(Customization));

View File

@ -42,8 +42,12 @@
"ThirdPartyAuthorization": "Third Party Authorization", "ThirdPartyAuthorization": "Third Party Authorization",
"SmtpSettings": "SMTP Settings", "SmtpSettings": "SMTP Settings",
"ManagementCategoryStatistic": "Statistics", "ManagementCategoryStatistic": "Statistics",
"LoadingProcessing": "Loading...", "LoadingProcessing": "Loading...",
"LoadingDescription": "Please wait...", "LoadingDescription": "Please wait...",
"GreetingSettingsTitle": "Welcome Page Settings",
"GreetingTitle": "Title",
"RestoreDefaultButton": "Restore to Default",
"SuccessfullySaveGreetingSettingsMessage": "Welcome Page settings have been successfully saved",

View File

@ -42,7 +42,11 @@
"SmtpSettings": "Настройки SMTP", "SmtpSettings": "Настройки SMTP",
"ManagementCategoryStatistic": "Статистика", "ManagementCategoryStatistic": "Статистика",
"LoadingProcessing": "Загрузка...", "LoadingProcessing": "Загрузка...",
"LoadingDescription": "Пожалуйста подождите...", "LoadingDescription": "Пожалуйста подождите...",
"GreetingSettingsTitle": "Настройки страницы приветствия",
"GreetingTitle": "Заголовок",
"RestoreDefaultButton": "Настройки по умолчанию",
"SuccessfullySaveGreetingSettingsMessage": "Настройки страницы приветствия успешно сохранены",

View File

@ -89,6 +89,10 @@
"DeactivationDeletionPortal", "DeactivationDeletionPortal",
"ThirdPartyAuthorization", "ThirdPartyAuthorization",
"SmtpSettings", "SmtpSettings",
"GreetingSettingsTitle",
"GreetingTitle",
"RestoreDefaultButton",
"SuccessfullySaveGreetingSettingsMessage",
"Employees" "Employees"
], ],
"FeedResource": [ "FeedResource": [

View File

@ -167,7 +167,7 @@ export function changeProductAdmin(userId, productId, administrator) {
return request({ return request({
method: "put", method: "put",
url: "/settings/security/administrator", url: "/settings/security/administrator",
data: { data: {
productId, productId,
userId, userId,
administrator administrator
@ -180,4 +180,26 @@ export function getUserById(userId) {
method: "get", method: "get",
url: `/people/${userId}`, url: `/people/${userId}`,
}); });
}
export function getGreetingSettings() {
return request({
method: "get",
url: `/settings/greetingsettings.json`,
});
}
export function setGreetingSettings(title) {
return request({
method: "post",
url: `/settings/greetingsettings.json`,
data: { title }
});
}
export function restoreGreetingSettings() {
return request({
method: "post",
url: `/settings/greetingsettings/restore.json`
});
} }

View File

@ -10,6 +10,7 @@ import {
export const SET_USERS = "SET_USERS"; export const SET_USERS = "SET_USERS";
export const SET_ADMINS = "SET_ADMINS"; export const SET_ADMINS = "SET_ADMINS";
export const SET_OWNER = "SET_OWNER"; export const SET_OWNER = "SET_OWNER";
export const SET_GREETING_SETTINGS = "SET_GREETING_SETTINGS";
export function setUsers(options) { export function setUsers(options) {
return { return {
@ -33,6 +34,13 @@ export function setOwner(owner) {
}; };
} }
export function setGreetingSettings(title) {
return {
type: SET_GREETING_SETTINGS,
title
};
}
export function getListUsers() { export function getListUsers() {
return (dispatch, getState) => { return (dispatch, getState) => {
return api.getUserList().then(users => { return api.getUserList().then(users => {
@ -101,3 +109,28 @@ export function getUserById(userId) {
return api.getUserById(userId).then(owner => dispatch(setOwner(owner))); return api.getUserById(userId).then(owner => dispatch(setOwner(owner)));
}; };
} }
export function getGreetingTitle() {
return dispatch => {
return api.getGreetingSettings()
.then(greetingTitle => dispatch(setGreetingSettings(greetingTitle)));
};
}
export function setGreetingTitle(greetingTitle) {
return dispatch => {
return api.setGreetingSettings(greetingTitle)
.then((res) => {
dispatch(setGreetingSettings(greetingTitle))
});
};
}
export function restoreGreetingTitle() {
return dispatch => {
return api.restoreGreetingSettings()
.then((res) => {
dispatch(setGreetingSettings(res.companyName))
});
};
}

View File

@ -1,11 +1,13 @@
import { SET_USERS, SET_ADMINS, SET_OWNER } from "./actions"; import { SET_USERS, SET_ADMINS, SET_OWNER, SET_GREETING_SETTINGS } from "./actions";
const initialState = { const initialState = {
accessRight: { accessRight: {
options: [], options: [],
admins: [], admins: [],
owner: {} owner: {}
} },
greetingSettings: ''
}; };
const peopleReducer = (state = initialState, action) => { const peopleReducer = (state = initialState, action) => {
@ -28,6 +30,10 @@ const peopleReducer = (state = initialState, action) => {
owner: action.owner owner: action.owner
}) })
}); });
case SET_GREETING_SETTINGS:
return Object.assign({}, state, {
greetingSettings: action.title
});
default: default:
return state; return state;
} }

View File

@ -26,7 +26,7 @@ module.exports = ({ config }) => {
// add story source // add story source
{ {
test: /\.stories\.js$/, test: /\.stories\.js$/,
loaders: [require.resolve('@storybook/addon-storysource/loader')], loaders: [require.resolve('@storybook/source-loader')],
enforce: 'pre', enforce: 'pre',
}, },
// Process JS with Babel. // Process JS with Babel.

View File

@ -1,6 +1,6 @@
{ {
"name": "asc-web-components", "name": "asc-web-components",
"version": "1.0.153", "version": "1.0.156",
"description": "Ascensio System SIA component library", "description": "Ascensio System SIA component library",
"license": "AGPL-3.0", "license": "AGPL-3.0",
"main": "dist/asc-web-components.js", "main": "dist/asc-web-components.js",
@ -46,16 +46,16 @@
"@babel/preset-react": "^7.0.0", "@babel/preset-react": "^7.0.0",
"@emotion/babel-preset-css-prop": "^10.0.17", "@emotion/babel-preset-css-prop": "^10.0.17",
"@storybook/addon-a11y": "^5.1.11", "@storybook/addon-a11y": "^5.1.11",
"@storybook/addon-actions": "^5.1.11", "@storybook/addon-actions": "^5.2.5",
"@storybook/addon-console": "^1.2.1", "@storybook/addon-console": "^1.2.1",
"@storybook/addon-knobs": "^5.1.11", "@storybook/addon-knobs": "^5.2.5",
"@storybook/addon-links": "^5.1.11", "@storybook/addon-links": "^5.2.5",
"@storybook/addon-options": "^5.1.11", "@storybook/addon-options": "^5.2.5",
"@storybook/addon-storysource": "^5.1.11", "@storybook/addon-storysource": "^5.2.5",
"@storybook/addon-viewport": "^5.1.11", "@storybook/addon-viewport": "^5.2.5",
"@storybook/addons": "^5.1.11", "@storybook/addons": "^5.2.5",
"@storybook/react": "^5.1.11", "@storybook/react": "^5.2.5",
"@svgr/rollup": "^4.3.2", "@svgr/rollup": "^4.3.3",
"@svgr/webpack": "^4.3.2", "@svgr/webpack": "^4.3.2",
"@testing-library/react": "^8.0.8", "@testing-library/react": "^8.0.8",
"@types/jest": "^24.0.17", "@types/jest": "^24.0.17",

View File

@ -49,8 +49,7 @@ const getButtons = (primary) => {
}; };
storiesOf('Components|Buttons', module) storiesOf('Components|Buttons', module)
// To set a default viewport for all the stories for this component
.addParameters({ viewport: { defaultViewport: 'responsive' } })
.addParameters({ options: { showAddonPanel: false } }) .addParameters({ options: { showAddonPanel: false } })
.add('all', () => ( .add('all', () => (
<Section> <Section>

View File

@ -94,7 +94,9 @@ class DropDown extends React.PureComponent {
render() { render() {
const {maxHeight, withArrow, directionX, children} = this.props; const {maxHeight, withArrow, directionX, children} = this.props;
const dropDownMaxHeightProp = maxHeight ? { height: maxHeight + 'px' } : {}; const fullHeight = children && children.length * 36;
const calculatedHeight = ((fullHeight > 0) && (fullHeight < maxHeight)) ? fullHeight : maxHeight;
const dropDownMaxHeightProp = maxHeight ? { height: calculatedHeight + 'px' } : {};
//console.log("DropDown render"); //console.log("DropDown render");
return ( return (
<StyledDropdown <StyledDropdown
@ -105,7 +107,7 @@ class DropDown extends React.PureComponent {
{withArrow && <Arrow directionX={directionX} />} {withArrow && <Arrow directionX={directionX} />}
{maxHeight {maxHeight
? <FixedSizeList ? <FixedSizeList
height={maxHeight} height={calculatedHeight}
width={this.state.width} width={this.state.width}
itemSize={36} itemSize={36}
itemCount={children.length} itemCount={children.length}

View File

@ -84,8 +84,6 @@ const LoginForm = props => {
}; };
storiesOf('EXAMPLES|Forms', module) storiesOf('EXAMPLES|Forms', module)
// To set a default viewport for all the stories for this component
.addParameters({ viewport: { defaultViewport: 'responsive' } })
.add('login', () => { .add('login', () => {
const onSubmit = (e, credentials) => { const onSubmit = (e, credentials) => {
console.log("onSubmit", e, credentials); console.log("onSubmit", e, credentials);

View File

@ -82,8 +82,6 @@ function getRandomInt(min, max) {
storiesOf("EXAMPLES|AdvancedSelector", module) storiesOf("EXAMPLES|AdvancedSelector", module)
.addDecorator(withKnobs) .addDecorator(withKnobs)
// To set a default viewport for all the stories for this component
.addParameters({ viewport: { defaultViewport: "responsive" } })
.add("people group selector", () => { .add("people group selector", () => {
return ( return (
<Section> <Section>

View File

@ -25,7 +25,6 @@ const data = [
const dropdownType = ['alwaysDashed', 'appearDashedAfterHover']; const dropdownType = ['alwaysDashed', 'appearDashedAfterHover'];
storiesOf('Components|LinkWithDropdown', module) storiesOf('Components|LinkWithDropdown', module)
.addParameters({ viewport: { defaultViewport: 'responsive' } })
.addParameters({ options: { showAddonPanel: false } }) .addParameters({ options: { showAddonPanel: false } })
.add('all', () => ( .add('all', () => (
<> <>

View File

@ -17,7 +17,6 @@ const headerStyle = {
storiesOf('Components|Link', module) storiesOf('Components|Link', module)
.addParameters({ viewport: { defaultViewport: 'responsive' } })
.addParameters({ options: { showAddonPanel: false } }) .addParameters({ options: { showAddonPanel: false } })
.add('all', () => ( .add('all', () => (
<> <>

View File

@ -7,8 +7,6 @@ import ModuleTile from '../module-tile';
const rowStyle = { marginTop: 8 }; const rowStyle = { marginTop: 8 };
storiesOf('Components|ModuleTile', module) storiesOf('Components|ModuleTile', module)
// To set a default viewport for all the stories for this component
.addParameters({ viewport: { defaultViewport: 'responsive' } })
.addParameters({ options: { showAddonPanel: false }}) .addParameters({ options: { showAddonPanel: false }})
.add('all', () => ( .add('all', () => (
<Container> <Container>

View File

@ -10,8 +10,6 @@ import Readme from './README.md';
const rowStyle = { marginTop: 8 }; const rowStyle = { marginTop: 8 };
storiesOf('Components|ModuleTile', module) storiesOf('Components|ModuleTile', module)
// To set a default viewport for all the stories for this component
.addParameters({ viewport: { defaultViewport: 'responsive' } })
.addDecorator(withKnobs) .addDecorator(withKnobs)
.addDecorator(withReadme(Readme)) .addDecorator(withReadme(Readme))
.add('base', () => ( .add('base', () => (

View File

@ -26,7 +26,6 @@ const StyledContainerInline = styled.div`
`; `;
storiesOf('Components|SelectedItem', module) storiesOf('Components|SelectedItem', module)
.addParameters({ viewport: { defaultViewport: 'responsive' } })
.addParameters({ options: { showAddonPanel: false } }) .addParameters({ options: { showAddonPanel: false } })
.add('all', () => { .add('all', () => {

View File

@ -48,6 +48,5 @@ class TostWrapper extends React.Component {
} }
storiesOf('Components|Toast', module) storiesOf('Components|Toast', module)
.addParameters({ viewport: { defaultViewport: 'responsive' } })
.addParameters({ options: { showAddonPanel: false } }) .addParameters({ options: { showAddonPanel: false } })
.add('all', () => (<TostWrapper />)); .add('all', () => (<TostWrapper />));

File diff suppressed because it is too large Load Diff