mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-11-08 07:21:03 +08:00
adds page titles [fixes SCI-1703]
This commit is contained in:
parent
10d5b573ee
commit
2f68a90eff
8 changed files with 222 additions and 185 deletions
|
|
@ -3,6 +3,7 @@ import { Route, Switch, Redirect } from "react-router-dom";
|
|||
import { LinkContainer } from "react-router-bootstrap";
|
||||
import { Nav, NavItem } from "react-bootstrap";
|
||||
import { FormattedMessage } from "react-intl";
|
||||
import DocumentTitle from "react-document-title";
|
||||
|
||||
import {
|
||||
ROOT_PATH,
|
||||
|
|
@ -39,7 +40,7 @@ export default class SettingsPage extends Component {
|
|||
|
||||
render() {
|
||||
return (
|
||||
<div>
|
||||
<DocumentTitle title="SciNote">
|
||||
<div className="container">
|
||||
<Nav bsStyle="tabs" activeKey="1" onSelect={this.handleSelect}>
|
||||
<LinkContainer
|
||||
|
|
@ -85,7 +86,7 @@ export default class SettingsPage extends Component {
|
|||
<Route component={NotFound} />
|
||||
</Switch>
|
||||
</div>
|
||||
</div>
|
||||
</DocumentTitle>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
import React, { Component } from "react";
|
||||
import { FormattedMessage } from "react-intl";
|
||||
import DocumentTitle from "react-document-title";
|
||||
|
||||
import { getUserPreferencesInfo } from "../../../../services/api/users_api";
|
||||
import SettingsAccountWrapper from "../../components/SettingsAccountWrapper";
|
||||
|
|
@ -45,48 +46,46 @@ class SettingsPreferences extends Component {
|
|||
|
||||
render() {
|
||||
return (
|
||||
<SettingsAccountWrapper>
|
||||
<div className="col-xs-12 col-sm-9">
|
||||
<InputTimezone
|
||||
value={this.state.timeZone}
|
||||
loadPreferences={this.getPreferencesInfo}
|
||||
/>
|
||||
<h3>
|
||||
<FormattedMessage id="settings_page.notifications" />
|
||||
</h3>
|
||||
<NotificationsGroup
|
||||
type={ASSIGNMENT_NOTIFICATION}
|
||||
title="settings_page.assignement"
|
||||
subtitle="settings_page.assignement_msg"
|
||||
iconClasses="fa fa-newspaper-o"
|
||||
inAppNotification={this.state.assignments_notification}
|
||||
emailNotification={
|
||||
this.state.assignments_email_notification
|
||||
}
|
||||
iconBackground={MAIN_COLOR_BLUE}
|
||||
reloadInfo={this.getPreferencesInfo}
|
||||
/>
|
||||
<NotificationsGroup
|
||||
type={RECENT_NOTIFICATION}
|
||||
title="settings_page.recent_changes"
|
||||
subtitle="settings_page.recent_changes_msg"
|
||||
inAppNotification={this.state.recent_notification}
|
||||
emailNotification={this.state.recent_email_notification}
|
||||
reloadInfo={this.getPreferencesInfo}
|
||||
/>
|
||||
<NotificationsGroup
|
||||
type={SYSTEM_NOTIFICATION}
|
||||
title="settings_page.system_message"
|
||||
subtitle="settings_page.system_message_msg"
|
||||
emailNotification={
|
||||
this.state.system_message_email_notification
|
||||
}
|
||||
iconClasses="glyphicon glyphicon-tower"
|
||||
iconBackground={ICON_GREEN_COLOR}
|
||||
reloadInfo={this.getPreferencesInfo}
|
||||
/>
|
||||
</div>
|
||||
</SettingsAccountWrapper>
|
||||
<DocumentTitle title="SciNote | Preferences">
|
||||
<SettingsAccountWrapper>
|
||||
<div className="col-xs-12 col-sm-9">
|
||||
<InputTimezone
|
||||
value={this.state.timeZone}
|
||||
loadPreferences={this.getPreferencesInfo}
|
||||
/>
|
||||
<h3>
|
||||
<FormattedMessage id="settings_page.notifications" />
|
||||
</h3>
|
||||
<NotificationsGroup
|
||||
type={ASSIGNMENT_NOTIFICATION}
|
||||
title="settings_page.assignement"
|
||||
subtitle="settings_page.assignement_msg"
|
||||
iconClasses="fa fa-newspaper-o"
|
||||
inAppNotification={this.state.assignments_notification}
|
||||
emailNotification={this.state.assignments_email_notification}
|
||||
iconBackground={MAIN_COLOR_BLUE}
|
||||
reloadInfo={this.getPreferencesInfo}
|
||||
/>
|
||||
<NotificationsGroup
|
||||
type={RECENT_NOTIFICATION}
|
||||
title="settings_page.recent_changes"
|
||||
subtitle="settings_page.recent_changes_msg"
|
||||
inAppNotification={this.state.recent_notification}
|
||||
emailNotification={this.state.recent_email_notification}
|
||||
reloadInfo={this.getPreferencesInfo}
|
||||
/>
|
||||
<NotificationsGroup
|
||||
type={SYSTEM_NOTIFICATION}
|
||||
title="settings_page.system_message"
|
||||
subtitle="settings_page.system_message_msg"
|
||||
emailNotification={this.state.system_message_email_notification}
|
||||
iconClasses="glyphicon glyphicon-tower"
|
||||
iconBackground={ICON_GREEN_COLOR}
|
||||
reloadInfo={this.getPreferencesInfo}
|
||||
/>
|
||||
</div>
|
||||
</SettingsAccountWrapper>
|
||||
</DocumentTitle>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,16 +1,20 @@
|
|||
import React from "react";
|
||||
import DocumentTitle from "react-document-title";
|
||||
import SettingsAccountWrapper from "../../components/SettingsAccountWrapper";
|
||||
import MyProfile from "./components/MyProfile";
|
||||
import MyStatistics from "./components/MyStatistics";
|
||||
|
||||
const SettingsProfile = () =>
|
||||
<SettingsAccountWrapper>
|
||||
<div className="col-xs-12 col-sm-4">
|
||||
<MyProfile />
|
||||
</div>
|
||||
<div className="col-xs-12 col-sm-5">
|
||||
<MyStatistics />
|
||||
</div>
|
||||
</SettingsAccountWrapper>;
|
||||
const SettingsProfile = () => (
|
||||
<DocumentTitle title="SciNote | Profile">
|
||||
<SettingsAccountWrapper>
|
||||
<div className="col-xs-12 col-sm-4">
|
||||
<MyProfile />
|
||||
</div>
|
||||
<div className="col-xs-12 col-sm-5">
|
||||
<MyStatistics />
|
||||
</div>
|
||||
</SettingsAccountWrapper>
|
||||
</DocumentTitle>
|
||||
);
|
||||
|
||||
export default SettingsProfile;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
import React, { Component } from "react";
|
||||
import ReactRouterPropTypes from "react-router-prop-types";
|
||||
import styled from "styled-components";
|
||||
import DocumentTitle from "react-document-title";
|
||||
import { Breadcrumb, Row, Col, Glyphicon, Well } from "react-bootstrap";
|
||||
import { LinkContainer } from "react-router-bootstrap";
|
||||
import { FormattedHTMLMessage, FormattedMessage } from "react-intl";
|
||||
|
|
@ -21,7 +22,7 @@ export type TeamMemeber = {
|
|||
team_user_id: number,
|
||||
teamName: string,
|
||||
team_id: number
|
||||
}
|
||||
};
|
||||
|
||||
const Wrapper = styled.div`
|
||||
background: white;
|
||||
|
|
@ -153,86 +154,88 @@ class SettingsTeam extends Component {
|
|||
|
||||
render() {
|
||||
return (
|
||||
<Wrapper>
|
||||
<Breadcrumb>
|
||||
<LinkContainer to={SETTINGS_TEAMS_ROUTE}>
|
||||
<Breadcrumb.Item>
|
||||
<FormattedMessage id="settings_page.all_teams" />
|
||||
<DocumentTitle title={`SciNote | Team | ${this.state.team.name}`}>
|
||||
<Wrapper>
|
||||
<Breadcrumb>
|
||||
<LinkContainer to={SETTINGS_TEAMS_ROUTE}>
|
||||
<Breadcrumb.Item>
|
||||
<FormattedMessage id="settings_page.all_teams" />
|
||||
</Breadcrumb.Item>
|
||||
</LinkContainer>
|
||||
<Breadcrumb.Item active={true}>
|
||||
{this.state.team.name}
|
||||
</Breadcrumb.Item>
|
||||
</LinkContainer>
|
||||
<Breadcrumb.Item active={true}>
|
||||
{this.state.team.name}
|
||||
</Breadcrumb.Item>
|
||||
</Breadcrumb>
|
||||
<TabTitle>
|
||||
<StyledH3 onClick={this.showNameModal}>
|
||||
{this.state.team.name}
|
||||
</StyledH3>
|
||||
</TabTitle>
|
||||
<Row>
|
||||
<Col xs={6} sm={3}>
|
||||
<BadgeWrapper>
|
||||
<Glyphicon glyph="calendar" />
|
||||
</BadgeWrapper>
|
||||
<StyledWell>
|
||||
<FormattedHTMLMessage
|
||||
id="settings_page.single_team.created_on"
|
||||
values={{
|
||||
created_at: moment(this.state.team.created_at).format(
|
||||
"DD.MM.YYYY"
|
||||
)
|
||||
}}
|
||||
/>
|
||||
</StyledWell>
|
||||
</Col>
|
||||
<Col xs={10} sm={5}>
|
||||
<BadgeWrapper>
|
||||
<Glyphicon glyph="user" />
|
||||
</BadgeWrapper>
|
||||
<StyledWell>
|
||||
<FormattedHTMLMessage
|
||||
id="settings_page.single_team.created_by"
|
||||
values={{ created_by: this.state.team.created_by }}
|
||||
/>
|
||||
</StyledWell>
|
||||
</Col>
|
||||
<Col xs={8} sm={4}>
|
||||
<BadgeWrapper>
|
||||
<Glyphicon glyph="hdd" />
|
||||
</BadgeWrapper>
|
||||
<StyledWell>
|
||||
<FormattedHTMLMessage
|
||||
id="settings_page.single_team.space_usage"
|
||||
values={{
|
||||
space_usage: formatBytes(this.state.team.space_taken)
|
||||
}}
|
||||
/>
|
||||
</StyledWell>
|
||||
</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col sm={12} onClick={this.showDescriptionModal}>
|
||||
<BadgeWrapper>
|
||||
<Glyphicon glyph="info-sign" />
|
||||
</BadgeWrapper>
|
||||
<StyledDescriptionWell>
|
||||
<span>{this.renderDescription()}</span>
|
||||
</StyledDescriptionWell>
|
||||
</Col>
|
||||
</Row>
|
||||
<TeamsMembers
|
||||
members={this.state.users}
|
||||
updateUsersCallback={this.updateUsersCallback}
|
||||
team={this.state.team}
|
||||
/>
|
||||
<UpdateTeamDescriptionModal
|
||||
showModal={this.state.showDescriptionModal}
|
||||
hideModal={this.hideDescriptionModalCallback}
|
||||
team={this.state.team}
|
||||
updateTeamCallback={this.updateTeamCallback}
|
||||
/>
|
||||
{this.renderEditNameModel()}
|
||||
</Wrapper>
|
||||
</Breadcrumb>
|
||||
<TabTitle>
|
||||
<StyledH3 onClick={this.showNameModal}>
|
||||
{this.state.team.name}
|
||||
</StyledH3>
|
||||
</TabTitle>
|
||||
<Row>
|
||||
<Col xs={6} sm={3}>
|
||||
<BadgeWrapper>
|
||||
<Glyphicon glyph="calendar" />
|
||||
</BadgeWrapper>
|
||||
<StyledWell>
|
||||
<FormattedHTMLMessage
|
||||
id="settings_page.single_team.created_on"
|
||||
values={{
|
||||
created_at: moment(this.state.team.created_at).format(
|
||||
"DD.MM.YYYY"
|
||||
)
|
||||
}}
|
||||
/>
|
||||
</StyledWell>
|
||||
</Col>
|
||||
<Col xs={10} sm={5}>
|
||||
<BadgeWrapper>
|
||||
<Glyphicon glyph="user" />
|
||||
</BadgeWrapper>
|
||||
<StyledWell>
|
||||
<FormattedHTMLMessage
|
||||
id="settings_page.single_team.created_by"
|
||||
values={{ created_by: this.state.team.created_by }}
|
||||
/>
|
||||
</StyledWell>
|
||||
</Col>
|
||||
<Col xs={8} sm={4}>
|
||||
<BadgeWrapper>
|
||||
<Glyphicon glyph="hdd" />
|
||||
</BadgeWrapper>
|
||||
<StyledWell>
|
||||
<FormattedHTMLMessage
|
||||
id="settings_page.single_team.space_usage"
|
||||
values={{
|
||||
space_usage: formatBytes(this.state.team.space_taken)
|
||||
}}
|
||||
/>
|
||||
</StyledWell>
|
||||
</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col sm={12} onClick={this.showDescriptionModal}>
|
||||
<BadgeWrapper>
|
||||
<Glyphicon glyph="info-sign" />
|
||||
</BadgeWrapper>
|
||||
<StyledDescriptionWell>
|
||||
<span>{this.renderDescription()}</span>
|
||||
</StyledDescriptionWell>
|
||||
</Col>
|
||||
</Row>
|
||||
<TeamsMembers
|
||||
members={this.state.users}
|
||||
updateUsersCallback={this.updateUsersCallback}
|
||||
team={this.state.team}
|
||||
/>
|
||||
<UpdateTeamDescriptionModal
|
||||
showModal={this.state.showDescriptionModal}
|
||||
hideModal={this.hideDescriptionModalCallback}
|
||||
team={this.state.team}
|
||||
updateTeamCallback={this.updateTeamCallback}
|
||||
/>
|
||||
{this.renderEditNameModel()}
|
||||
</Wrapper>
|
||||
</DocumentTitle>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
import React from "react";
|
||||
import PropTypes, { number, string, bool } from "prop-types";
|
||||
import DocumentTitle from "react-document-title";
|
||||
import styled from "styled-components";
|
||||
import { Breadcrumb } from "react-bootstrap";
|
||||
import { connect } from "react-redux";
|
||||
|
|
@ -19,16 +20,19 @@ const Wrapper = styled.div`
|
|||
padding: 16px 15px 50px 15px;
|
||||
`;
|
||||
|
||||
const SettingsTeams = ({ teams }) =>
|
||||
<Wrapper>
|
||||
<Breadcrumb>
|
||||
<Breadcrumb.Item active>
|
||||
<FormattedMessage id="settings_page.all_teams" />
|
||||
</Breadcrumb.Item>
|
||||
</Breadcrumb>
|
||||
<TeamsPageDetails teams={teams} />
|
||||
<TeamsDataTable teams={teams} />
|
||||
</Wrapper>;
|
||||
const SettingsTeams = ({ teams }) => (
|
||||
<DocumentTitle title="SciNote | Teams">
|
||||
<Wrapper>
|
||||
<Breadcrumb>
|
||||
<Breadcrumb.Item active>
|
||||
<FormattedMessage id="settings_page.all_teams" />
|
||||
</Breadcrumb.Item>
|
||||
</Breadcrumb>
|
||||
<TeamsPageDetails teams={teams} />
|
||||
<TeamsDataTable teams={teams} />
|
||||
</Wrapper>
|
||||
</DocumentTitle>
|
||||
);
|
||||
|
||||
SettingsTeams.propTypes = {
|
||||
teams: PropTypes.arrayOf(
|
||||
|
|
@ -44,7 +48,7 @@ SettingsTeams.propTypes = {
|
|||
};
|
||||
|
||||
SettingsTeams.defaultProps = {
|
||||
teams: [{id: 0, name: "", current_team: "", role: "", members: 0}]
|
||||
teams: [{ id: 0, name: "", current_team: "", role: "", members: 0 }]
|
||||
};
|
||||
|
||||
const mapStateToProps = ({ all_teams }) => ({
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ import {
|
|||
import { Redirect } from "react-router";
|
||||
import { LinkContainer } from "react-router-bootstrap";
|
||||
import { FormattedMessage } from "react-intl";
|
||||
import DocumentTitle from "react-document-title";
|
||||
import update from "immutability-helper";
|
||||
import styled from "styled-components";
|
||||
import _ from "lodash";
|
||||
|
|
@ -225,48 +226,50 @@ class SettingsNewTeam extends Component {
|
|||
!_.isEmpty(this.state.formErrors.description);
|
||||
|
||||
return (
|
||||
<Wrapper>
|
||||
<Breadcrumb>
|
||||
<LinkContainer to={SETTINGS_TEAMS_ROUTE}>
|
||||
<Breadcrumb.Item>
|
||||
<FormattedMessage id="settings_page.all_teams" />
|
||||
</Breadcrumb.Item>
|
||||
</LinkContainer>
|
||||
<Breadcrumb.Item active={true}>
|
||||
<FormattedMessage id="settings_page.new_team.title" />
|
||||
</Breadcrumb.Item>
|
||||
</Breadcrumb>
|
||||
|
||||
<form onSubmit={this.onSubmit} style={{ maxWidth: "500px" }}>
|
||||
<MyFormGroupDiv>
|
||||
{this.renderTeamNameFormGroup()}
|
||||
<small>
|
||||
<FormattedMessage id="settings_page.new_team.name_sublabel" />
|
||||
</small>
|
||||
</MyFormGroupDiv>
|
||||
|
||||
<MyFormGroupDiv>
|
||||
{this.renderTeamDescriptionFormGroup()}
|
||||
<small>
|
||||
<FormattedMessage id="settings_page.new_team.description_sublabel" />
|
||||
</small>
|
||||
</MyFormGroupDiv>
|
||||
<ButtonToolbar>
|
||||
<Button
|
||||
type="submit"
|
||||
className="btn-primary"
|
||||
disabled={btnDisabled}
|
||||
>
|
||||
<FormattedMessage id="settings_page.new_team.create" />
|
||||
</Button>
|
||||
<DocumentTitle title="SciNote | Team | New">
|
||||
<Wrapper>
|
||||
<Breadcrumb>
|
||||
<LinkContainer to={SETTINGS_TEAMS_ROUTE}>
|
||||
<Button>
|
||||
<FormattedMessage id="general.cancel" />
|
||||
</Button>
|
||||
<Breadcrumb.Item>
|
||||
<FormattedMessage id="settings_page.all_teams" />
|
||||
</Breadcrumb.Item>
|
||||
</LinkContainer>
|
||||
</ButtonToolbar>
|
||||
</form>
|
||||
</Wrapper>
|
||||
<Breadcrumb.Item active={true}>
|
||||
<FormattedMessage id="settings_page.new_team.title" />
|
||||
</Breadcrumb.Item>
|
||||
</Breadcrumb>
|
||||
|
||||
<form onSubmit={this.onSubmit} style={{ maxWidth: "500px" }}>
|
||||
<MyFormGroupDiv>
|
||||
{this.renderTeamNameFormGroup()}
|
||||
<small>
|
||||
<FormattedMessage id="settings_page.new_team.name_sublabel" />
|
||||
</small>
|
||||
</MyFormGroupDiv>
|
||||
|
||||
<MyFormGroupDiv>
|
||||
{this.renderTeamDescriptionFormGroup()}
|
||||
<small>
|
||||
<FormattedMessage id="settings_page.new_team.description_sublabel" />
|
||||
</small>
|
||||
</MyFormGroupDiv>
|
||||
<ButtonToolbar>
|
||||
<Button
|
||||
type="submit"
|
||||
className="btn-primary"
|
||||
disabled={btnDisabled}
|
||||
>
|
||||
<FormattedMessage id="settings_page.new_team.create" />
|
||||
</Button>
|
||||
<LinkContainer to={SETTINGS_TEAMS_ROUTE}>
|
||||
<Button>
|
||||
<FormattedMessage id="general.cancel" />
|
||||
</Button>
|
||||
</LinkContainer>
|
||||
</ButtonToolbar>
|
||||
</form>
|
||||
</Wrapper>
|
||||
</DocumentTitle>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -72,6 +72,7 @@
|
|||
"react-bootstrap-table": "^4.0.0",
|
||||
"react-bootstrap-timezone-picker": "^1.0.11",
|
||||
"react-data-grid": "^2.0.2",
|
||||
"react-document-title": "^2.0.3",
|
||||
"react-dom": "15.6.1",
|
||||
"react-intl": "^2.3.0",
|
||||
"react-intl-redux": "^0.6.0",
|
||||
|
|
|
|||
24
yarn.lock
24
yarn.lock
|
|
@ -2289,6 +2289,10 @@ exenv@1.2.0:
|
|||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/exenv/-/exenv-1.2.0.tgz#3835f127abf075bfe082d0aed4484057c78e3c89"
|
||||
|
||||
exenv@^1.2.1:
|
||||
version "1.2.2"
|
||||
resolved "https://registry.yarnpkg.com/exenv/-/exenv-1.2.2.tgz#2ae78e85d9894158670b03d47bec1f03bd91bb9d"
|
||||
|
||||
expand-brackets@^0.1.4:
|
||||
version "0.1.5"
|
||||
resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b"
|
||||
|
|
@ -4864,7 +4868,7 @@ prop-types@15.5.10, prop-types@^15.5.4, prop-types@^15.5.7, prop-types@^15.5.8:
|
|||
fbjs "^0.8.9"
|
||||
loose-envify "^1.3.1"
|
||||
|
||||
prop-types@^15.5.10:
|
||||
prop-types@^15.5.10, prop-types@^15.5.6:
|
||||
version "15.6.0"
|
||||
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.0.tgz#ceaf083022fc46b4a35f69e13ef75aed0d639856"
|
||||
dependencies:
|
||||
|
|
@ -5018,6 +5022,13 @@ react-data-grid@^2.0.2:
|
|||
version "2.0.60"
|
||||
resolved "https://registry.yarnpkg.com/react-data-grid/-/react-data-grid-2.0.60.tgz#4a1549d4dad032677439f25dbcf1036ab966032f"
|
||||
|
||||
react-document-title@^2.0.3:
|
||||
version "2.0.3"
|
||||
resolved "https://registry.yarnpkg.com/react-document-title/-/react-document-title-2.0.3.tgz#bbf922a0d71412fc948245e4283b2412df70f2b9"
|
||||
dependencies:
|
||||
prop-types "^15.5.6"
|
||||
react-side-effect "^1.0.2"
|
||||
|
||||
react-dom-factories@^1.0.0:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/react-dom-factories/-/react-dom-factories-1.0.1.tgz#c50692ac5ff1adb39d86dfe6dbe3485dacf58455"
|
||||
|
|
@ -5130,6 +5141,13 @@ react-s-alert@^1.3.0:
|
|||
dependencies:
|
||||
babel-runtime "^6.23.0"
|
||||
|
||||
react-side-effect@^1.0.2:
|
||||
version "1.1.3"
|
||||
resolved "https://registry.yarnpkg.com/react-side-effect/-/react-side-effect-1.1.3.tgz#512c25abe0dec172834c4001ec5c51e04d41bc5c"
|
||||
dependencies:
|
||||
exenv "^1.2.1"
|
||||
shallowequal "^1.0.1"
|
||||
|
||||
react-tagsinput@^3.17.0:
|
||||
version "3.18.0"
|
||||
resolved "https://registry.yarnpkg.com/react-tagsinput/-/react-tagsinput-3.18.0.tgz#40e036fc0f4c3d6b4689858189ab02926717a818"
|
||||
|
|
@ -5607,6 +5625,10 @@ shallow-clone@^0.1.2:
|
|||
lazy-cache "^0.2.3"
|
||||
mixin-object "^2.0.1"
|
||||
|
||||
shallowequal@^1.0.1:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.0.2.tgz#1561dbdefb8c01408100319085764da3fcf83f8f"
|
||||
|
||||
shebang-command@^1.2.0:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue