Create app namespace for all absolute requires of app modules. Move all packages under packages yarn workspace

This commit is contained in:
SleepWalker 2019-12-07 21:02:00 +02:00
parent d8d2df0702
commit f9d3bb4e20
404 changed files with 758 additions and 742 deletions

View File

@ -1,4 +1,3 @@
flow-typed
dist dist
dll dll
node_modules node_modules

View File

@ -24,7 +24,7 @@ module.exports = {
overrides: [ overrides: [
{ {
files: ['webpack-utils/**', 'scripts/**', 'jest/**'], files: ['packages/webpack-utils/**', 'packages/scripts/**', 'jest/**'],
env: { env: {
node: true, node: true,
}, },

View File

@ -2,7 +2,7 @@
/* eslint-disable @typescript-eslint/no-var-requires */ /* eslint-disable @typescript-eslint/no-var-requires */
/* eslint-env node */ /* eslint-env node */
const path = require('path'); const path = require('path');
const { transform } = require('../../webpack-utils/intl-loader'); const { transform } = require('webpack-utils/intl-loader');
module.exports = { module.exports = {
/** /**

View File

@ -1,4 +1,4 @@
import 'polyfills'; import 'app/polyfills';
import { configure } from 'enzyme'; import { configure } from 'enzyme';
import Adapter from 'enzyme-adapter-react-16'; import Adapter from 'enzyme-adapter-react-16';

View File

@ -1,7 +1,6 @@
{ {
"name": "@elyby/accounts-frontend", "name": "@elyby/accounts-frontend",
"description": "", "description": "",
"main": "src/index.js",
"author": "SleepWalker <mybox@udf.su>", "author": "SleepWalker <mybox@udf.su>",
"private": true, "private": true,
"maintainers": [ "maintainers": [
@ -20,31 +19,30 @@
"node": ">=10.0.0" "node": ">=10.0.0"
}, },
"workspaces": [ "workspaces": [
"webpack-utils", "packages/*",
"scripts",
"tests-e2e" "tests-e2e"
], ],
"scripts": { "scripts": {
"start": "yarn run clean && yarn run build:dll && NODE_PATH=./src webpack-dev-server --colors", "start": "yarn run clean && yarn run build:dll && webpack-dev-server --colors",
"clean": "rm -rf ./dist && mkdir ./dist", "clean": "rm -rf ./dist && mkdir ./dist",
"e2e": "yarn --cwd ./tests-e2e test", "e2e": "yarn --cwd ./tests-e2e test",
"test": "NODE_PATH=./src jest", "test": "jest",
"test:watch": "yarn test --watch", "test:watch": "yarn test --watch",
"lint": "eslint --fix --quiet .", "lint": "eslint --fix --quiet .",
"lint:check": "eslint --quiet .", "lint:check": "eslint --quiet .",
"prettier": "prettier --write \"{src/**/*,scripts/**/*,tests-e2e/**/*,webpack-utils/**/*,jest/**/*,config/**/*,*}.{js,ts,tsx,json,md,scss,css}\"", "prettier": "prettier --write \"{packages/**/*,tests-e2e/**/*,jest/**/*,config/**/*,*}.{js,ts,tsx,json,md,scss,css}\"",
"prettier:check": "prettier --check \"{src/**/*,scripts/**/*,tests-e2e/**/*,webpack-utils/**/*,jest/**/*,config/**/*,*}.{js,ts,tsx,json,md,scss,css}\"", "prettier:check": "prettier --check \"{packages/**/*,tests-e2e/**/*,jest/**/*,config/**/*,*}.{js,ts,tsx,json,md,scss,css}\"",
"ts:check": "tsc", "ts:check": "tsc",
"ci:check": "yarn lint:check && yarn ts:check && yarn test", "ci:check": "yarn lint:check && yarn ts:check && yarn test",
"analyze": "yarn run clean && yarn run build:webpack --analyze", "analyze": "yarn run clean && yarn run build:webpack --analyze",
"i18n:collect": "babel-node ./scripts/i18n-collect.js", "i18n:collect": "babel-node ./packages/scripts/i18n-collect.js",
"i18n:push": "babel-node ./scripts/i18n-crowdin.js push", "i18n:push": "babel-node ./packages/scripts/i18n-crowdin.js push",
"i18n:pull": "babel-node ./scripts/i18n-crowdin.js pull", "i18n:pull": "babel-node ./packages/scripts/i18n-crowdin.js pull",
"build": "yarn run clean && yarn run build:webpack", "build": "yarn run clean && yarn run build:webpack",
"build:install": "yarn install", "build:install": "yarn install",
"build:webpack": "NODE_PATH=./src webpack --colors -p --bail", "build:webpack": "webpack --colors -p --bail",
"build:quiet": "yarn run clean && yarn run build:webpack --quiet", "build:quiet": "yarn run clean && yarn run build:webpack --quiet",
"build:dll": "node ./scripts/build-dll.js", "build:dll": "node ./packages/scripts/build-dll.js",
"build:serve": "http-server --proxy https://dev.account.ely.by ./dist" "build:serve": "http-server --proxy https://dev.account.ely.by ./dist"
}, },
"husky": { "husky": {
@ -65,7 +63,7 @@
}, },
"jest": { "jest": {
"roots": [ "roots": [
"<rootDir>/src/" "<rootDir>/packages/app"
], ],
"setupFilesAfterEnv": [ "setupFilesAfterEnv": [
"<rootDir>/jest/setupAfterEnv.js" "<rootDir>/jest/setupAfterEnv.js"
@ -86,38 +84,7 @@
"^.+\\.[tj]sx?$": "babel-jest" "^.+\\.[tj]sx?$": "babel-jest"
} }
}, },
"dependencies": { "dependencies": {},
"@formatjs/intl-pluralrules": "^1.3.7",
"@formatjs/intl-relativetimeformat": "^4.4.6",
"@hot-loader/react-dom": "^16.11.0",
"@types/react-redux": "^7.1.5",
"@types/react-router-dom": "^5.1.3",
"classnames": "^2.2.6",
"copy-to-clipboard": "^3.0.8",
"debounce": "^1.0.0",
"flag-icon-css": "^3.4.5",
"intl": "^1.2.5",
"promise.prototype.finally": "3.1.1",
"prop-types": "^15.6.2",
"raf": "^3.4.1",
"raven-js": "^3.27.0",
"react": "^16.12.0",
"react-dom": "^16.12.0",
"react-helmet": "^5.0.0",
"react-hot-loader": "^4.12.18",
"react-intl": "^3.7.0",
"react-motion": "^0.5.0",
"react-redux": "^7.1.3",
"react-router-dom": "^5.1.2",
"react-textarea-autosize": "^7.1.2",
"react-transition-group": "^4.3.0",
"redux": "^4.0.4",
"redux-localstorage": "^0.4.1",
"redux-thunk": "^2.0.0",
"url-search-params-polyfill": "^7.0.0",
"webfontloader": "^1.6.26",
"whatwg-fetch": "^3.0.0"
},
"devDependencies": { "devDependencies": {
"@babel/cli": "^7.7.4", "@babel/cli": "^7.7.4",
"@babel/core": "^7.7.4", "@babel/core": "^7.7.4",
@ -155,8 +122,6 @@
"cssnano": "^4.1.10", "cssnano": "^4.1.10",
"dotenv": "^8.2.0", "dotenv": "^8.2.0",
"eager-imports-webpack-plugin": "^1.0.0", "eager-imports-webpack-plugin": "^1.0.0",
"enzyme": "^3.8.0",
"enzyme-adapter-react-16": "^1.15.1",
"eslint": "^6.7.1", "eslint": "^6.7.1",
"eslint-config-prettier": "^6.7.0", "eslint-config-prettier": "^6.7.0",
"eslint-plugin-jsdoc": "^18.1.5", "eslint-plugin-jsdoc": "^18.1.5",

View File

@ -2,11 +2,11 @@ import React from 'react';
import { hot } from 'react-hot-loader/root'; import { hot } from 'react-hot-loader/root';
import { Provider as ReduxProvider } from 'react-redux'; import { Provider as ReduxProvider } from 'react-redux';
import { Router, Route, Switch } from 'react-router-dom'; import { Router, Route, Switch } from 'react-router-dom';
import { IntlProvider } from 'components/i18n'; import { IntlProvider } from 'app/components/i18n';
import { Store } from 'redux'; import { Store } from 'redux';
import AuthFlowRoute from 'containers/AuthFlowRoute'; import AuthFlowRoute from 'app/containers/AuthFlowRoute';
import RootPage from 'pages/root/RootPage'; import RootPage from 'app/pages/root/RootPage';
import SuccessOauthPage from 'pages/auth/SuccessOauthPage'; import SuccessOauthPage from 'app/pages/auth/SuccessOauthPage';
const App = ({ const App = ({
store, store,

View File

@ -1,5 +1,5 @@
import React from 'react'; import React from 'react';
import { omit, debounce } from 'functions'; import { omit, debounce } from 'app/functions';
/** /**
* MeasureHeight is a component that allows you to measure the height of elements wrapped. * MeasureHeight is a component that allows you to measure the height of elements wrapped.

View File

@ -3,12 +3,12 @@ import { connect } from 'react-redux';
import classNames from 'classnames'; import classNames from 'classnames';
import { Link } from 'react-router-dom'; import { Link } from 'react-router-dom';
import { FormattedMessage as Message } from 'react-intl'; import { FormattedMessage as Message } from 'react-intl';
import loader from 'services/loader'; import loader from 'app/services/loader';
import { SKIN_DARK, COLOR_WHITE, Skin } from 'components/ui'; import { SKIN_DARK, COLOR_WHITE, Skin } from 'app/components/ui';
import { Button } from 'components/ui/form'; import { Button } from 'app/components/ui/form';
import { authenticate, revoke } from 'components/accounts/actions'; import { authenticate, revoke } from 'app/components/accounts/actions';
import { getActiveAccount, Account } from 'components/accounts/reducer'; import { getActiveAccount, Account } from 'app/components/accounts/reducer';
import { RootState } from 'reducers'; import { RootState } from 'app/reducers';
import styles from './accountSwitcher.scss'; import styles from './accountSwitcher.scss';
import messages from './AccountSwitcher.intl.json'; import messages from './AccountSwitcher.intl.json';

View File

@ -1,8 +1,8 @@
@import '~components/ui/colors.scss'; @import '~app/components/ui/colors.scss';
@import '~components/ui/fonts.scss'; @import '~app/components/ui/fonts.scss';
// TODO: эту константу можно заимпортить из panel.scss, но это приводит к странным ошибкам // TODO: эту константу можно заимпортить из panel.scss, но это приводит к странным ошибкам
//@import '~components/ui/panel.scss'; //@import '~app/components/ui/panel.scss';
$bodyLeftRightPadding: 20px; $bodyLeftRightPadding: 20px;
$lightBorderColor: #eee; $lightBorderColor: #eee;
@ -150,7 +150,7 @@ $lightBorderColor: #eee;
} }
.accountIcon { .accountIcon {
composes: minecraft-character from '~components/ui/icons.scss'; composes: minecraft-character from '~app/components/ui/icons.scss';
float: left; float: left;
@ -184,7 +184,7 @@ $lightBorderColor: #eee;
} }
.addIcon { .addIcon {
composes: plus from '~components/ui/icons.scss'; composes: plus from '~app/components/ui/icons.scss';
color: $green; color: $green;
position: relative; position: relative;
@ -193,7 +193,7 @@ $lightBorderColor: #eee;
} }
.nextIcon { .nextIcon {
composes: arrowRight from '~components/ui/icons.scss'; composes: arrowRight from '~app/components/ui/icons.scss';
position: relative; position: relative;
float: right; float: right;
@ -212,7 +212,7 @@ $lightBorderColor: #eee;
} }
.logoutIcon { .logoutIcon {
composes: exit from '~components/ui/icons.scss'; composes: exit from '~app/components/ui/icons.scss';
color: #cdcdcd; color: #cdcdcd;
float: right; float: right;

View File

@ -1,15 +1,15 @@
import expect from 'test/unexpected'; import expect from 'app/test/unexpected';
import sinon from 'sinon'; import sinon from 'sinon';
import { browserHistory } from 'services/history'; import { browserHistory } from 'app/services/history';
import { InternalServerError } from 'services/request'; import { InternalServerError } from 'app/services/request';
import { sessionStorage } from 'services/localStorage'; import { sessionStorage } from 'app/services/localStorage';
import * as authentication from 'services/api/authentication'; import * as authentication from 'app/services/api/authentication';
import { import {
authenticate, authenticate,
revoke, revoke,
logoutAll, logoutAll,
logoutStrangers, logoutStrangers,
} from 'components/accounts/actions'; } from 'app/components/accounts/actions';
import { import {
add, add,
ADD, ADD,
@ -17,11 +17,11 @@ import {
ACTIVATE, ACTIVATE,
remove, remove,
reset, reset,
} from 'components/accounts/actions/pure-actions'; } from 'app/components/accounts/actions/pure-actions';
import { SET_LOCALE } from 'components/i18n/actions'; import { SET_LOCALE } from 'app/components/i18n/actions';
import { updateUser, setUser } from 'components/user/actions'; import { updateUser, setUser } from 'app/components/user/actions';
import { setLogin, setAccountSwitcher } from 'components/auth/actions'; import { setLogin, setAccountSwitcher } from 'app/components/auth/actions';
import { Dispatch, RootState } from 'reducers'; import { Dispatch, RootState } from 'app/reducers';
import { Account } from './reducer'; import { Account } from './reducer';

View File

@ -1,17 +1,17 @@
import { getJwtPayloads } from 'functions'; import { getJwtPayloads } from 'app/functions';
import { sessionStorage } from 'services/localStorage'; import { sessionStorage } from 'app/services/localStorage';
import { import {
validateToken, validateToken,
requestToken, requestToken,
logout, logout,
} from 'services/api/authentication'; } from 'app/services/api/authentication';
import { relogin as navigateToLogin } from 'components/auth/actions'; import { relogin as navigateToLogin } from 'app/components/auth/actions';
import { updateUser, setGuest } from 'components/user/actions'; import { updateUser, setGuest } from 'app/components/user/actions';
import { setLocale } from 'components/i18n/actions'; import { setLocale } from 'app/components/i18n/actions';
import { setAccountSwitcher } from 'components/auth/actions'; import { setAccountSwitcher } from 'app/components/auth/actions';
import { getActiveAccount } from 'components/accounts/reducer'; import { getActiveAccount } from 'app/components/accounts/reducer';
import logger from 'services/logger'; import logger from 'app/services/logger';
import { ThunkAction } from 'reducers'; import { ThunkAction } from 'app/reducers';
import { Account } from './reducer'; import { Account } from './reducer';
import { import {

View File

@ -1,4 +1,4 @@
import expect from 'test/unexpected'; import expect from 'app/test/unexpected';
import { updateToken } from './actions'; import { updateToken } from './actions';
import { import {

View File

@ -3,9 +3,9 @@
*/ */
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import React from 'react'; import React from 'react';
import AuthError from 'components/auth/authError/AuthError'; import AuthError from 'app/components/auth/authError/AuthError';
import { userShape } from 'components/user/User'; import { userShape } from 'app/components/user/User';
import { FormModel } from 'components/ui/form'; import { FormModel } from 'app/components/ui/form';
import { RouteComponentProps } from 'react-router-dom'; import { RouteComponentProps } from 'react-router-dom';
export default class BaseAuthBody extends React.Component< export default class BaseAuthBody extends React.Component<

View File

@ -1,7 +1,7 @@
import React from 'react'; import React from 'react';
import { AccountsState } from 'components/accounts'; import { AccountsState } from 'app/components/accounts';
import { AuthState } from 'components/auth'; import { AuthState } from 'app/components/auth';
import { User } from 'components/user'; import { User } from 'app/components/user';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import { connect } from 'react-redux'; import { connect } from 'react-redux';
import { TransitionMotion, spring } from 'react-motion'; import { TransitionMotion, spring } from 'react-motion';
@ -10,18 +10,18 @@ import {
PanelBody, PanelBody,
PanelFooter, PanelFooter,
PanelHeader, PanelHeader,
} from 'components/ui/Panel'; } from 'app/components/ui/Panel';
import { getLogin } from 'components/auth/reducer'; import { getLogin } from 'app/components/auth/reducer';
import { Form } from 'components/ui/form'; import { Form } from 'app/components/ui/form';
import MeasureHeight from 'components/MeasureHeight'; import MeasureHeight from 'app/components/MeasureHeight';
import defaultHelpLinksStyles from 'components/auth/helpLinks.scss'; import defaultHelpLinksStyles from 'app/components/auth/helpLinks.scss';
import panelStyles from 'components/ui/panel.scss'; import panelStyles from 'app/components/ui/panel.scss';
import icons from 'components/ui/icons.scss'; import icons from 'app/components/ui/icons.scss';
import authFlow from 'services/authFlow'; import authFlow from 'app/services/authFlow';
import { userShape } from 'components/user/User'; import { userShape } from 'app/components/user/User';
import * as actions from './actions'; import * as actions from './actions';
import { RootState } from 'reducers'; import { RootState } from 'app/reducers';
const opacitySpringConfig = { stiffness: 300, damping: 20 }; const opacitySpringConfig = { stiffness: 300, damping: 20 };
const transformSpringConfig = { stiffness: 500, damping: 50, precision: 0.5 }; const transformSpringConfig = { stiffness: 500, damping: 50, precision: 0.5 };

View File

@ -1,8 +1,8 @@
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import React from 'react'; import React from 'react';
import { FormattedMessage as Message, MessageDescriptor } from 'react-intl'; import { FormattedMessage as Message, MessageDescriptor } from 'react-intl';
import { User } from 'components/user'; import { User } from 'app/components/user';
import { userShape } from 'components/user/User'; import { userShape } from 'app/components/user/User';
interface Props { interface Props {
isAvailable?: (context: Context) => boolean; isAvailable?: (context: Context) => boolean;

View File

@ -3,9 +3,9 @@ import React from 'react';
import { FormattedMessage as Message } from 'react-intl'; import { FormattedMessage as Message } from 'react-intl';
import { Link } from 'react-router-dom'; import { Link } from 'react-router-dom';
import icons from 'components/ui/icons.scss'; import icons from 'app/components/ui/icons.scss';
import BaseAuthBody from 'components/auth/BaseAuthBody'; import BaseAuthBody from 'app/components/auth/BaseAuthBody';
import appInfo from 'components/auth/appInfo/AppInfo.intl.json'; import appInfo from 'app/components/auth/appInfo/AppInfo.intl.json';
import styles from './acceptRules.scss'; import styles from './acceptRules.scss';
import messages from './AcceptRules.intl.json'; import messages from './AcceptRules.intl.json';

View File

@ -1,4 +1,4 @@
@import '~components/ui/colors.scss'; @import '~app/components/ui/colors.scss';
.descriptionText { .descriptionText {
font-size: 15px; font-size: 15px;

View File

@ -1,7 +1,7 @@
import sinon from 'sinon'; import sinon from 'sinon';
import expect from 'test/unexpected'; import expect from 'app/test/unexpected';
import request from 'services/request'; import request from 'app/services/request';
import { import {
setLoadingState, setLoadingState,
@ -14,7 +14,7 @@ import {
requirePermissionsAccept, requirePermissionsAccept,
login, login,
setLogin, setLogin,
} from 'components/auth/actions'; } from 'app/components/auth/actions';
const oauthData = { const oauthData = {
clientId: '', clientId: '',

View File

@ -1,26 +1,26 @@
import { browserHistory } from 'services/history'; import { browserHistory } from 'app/services/history';
import logger from 'services/logger'; import logger from 'app/services/logger';
import localStorage from 'services/localStorage'; import localStorage from 'app/services/localStorage';
import loader from 'services/loader'; import loader from 'app/services/loader';
import history from 'services/history'; import history from 'app/services/history';
import { import {
updateUser, updateUser,
acceptRules as userAcceptRules, acceptRules as userAcceptRules,
} from 'components/user/actions'; } from 'app/components/user/actions';
import { authenticate, logoutAll } from 'components/accounts/actions'; import { authenticate, logoutAll } from 'app/components/accounts/actions';
import { getActiveAccount } from 'components/accounts/reducer'; import { getActiveAccount } from 'app/components/accounts/reducer';
import { import {
login as loginEndpoint, login as loginEndpoint,
forgotPassword as forgotPasswordEndpoint, forgotPassword as forgotPasswordEndpoint,
recoverPassword as recoverPasswordEndpoint, recoverPassword as recoverPasswordEndpoint,
OAuthResponse, OAuthResponse,
} from 'services/api/authentication'; } from 'app/services/api/authentication';
import oauth, { OauthData, Client, Scope } from 'services/api/oauth'; import oauth, { OauthData, Client, Scope } from 'app/services/api/oauth';
import signup from 'services/api/signup'; import signup from 'app/services/api/signup';
import dispatchBsod from 'components/ui/bsod/dispatchBsod'; import dispatchBsod from 'app/components/ui/bsod/dispatchBsod';
import { create as createPopup } from 'components/ui/popup/actions'; import { create as createPopup } from 'app/components/ui/popup/actions';
import ContactForm from 'components/contact/ContactForm'; import ContactForm from 'app/components/contact/ContactForm';
import { ThunkAction, Dispatch } from 'reducers'; import { ThunkAction, Dispatch } from 'app/reducers';
import { getCredentials } from './reducer'; import { getCredentials } from './reducer';
@ -31,14 +31,14 @@ type ValidationError =
payload: { [key: string]: any }; payload: { [key: string]: any };
}; };
export { updateUser } from 'components/user/actions'; export { updateUser } from 'app/components/user/actions';
export { export {
authenticate, authenticate,
logoutAll as logout, logoutAll as logout,
remove as removeAccount, remove as removeAccount,
activate as activateAccount, activate as activateAccount,
} from 'components/accounts/actions'; } from 'app/components/accounts/actions';
import { Account } from 'components/accounts/reducer'; import { Account } from 'app/components/accounts/reducer';
/** /**
* Reoutes user to the previous page if it is possible * Reoutes user to the previous page if it is possible

View File

@ -3,9 +3,9 @@ import React from 'react';
import { FormattedMessage as Message } from 'react-intl'; import { FormattedMessage as Message } from 'react-intl';
import { Input } from 'components/ui/form'; import { Input } from 'app/components/ui/form';
import BaseAuthBody from 'components/auth/BaseAuthBody'; import BaseAuthBody from 'app/components/auth/BaseAuthBody';
import styles from './activation.scss'; import styles from './activation.scss';
import messages from './Activation.intl.json'; import messages from './Activation.intl.json';

View File

@ -1,11 +1,11 @@
@import '~components/ui/colors.scss'; @import '~app/components/ui/colors.scss';
@import '~components/ui/fonts.scss'; @import '~app/components/ui/fonts.scss';
.description { .description {
} }
.descriptionImage { .descriptionImage {
composes: envelope from '~components/ui/icons.scss'; composes: envelope from '~app/components/ui/icons.scss';
font-size: 100px; font-size: 100px;
color: $blue; color: $blue;

View File

@ -1,7 +1,7 @@
import React from 'react'; import React from 'react';
import { FormattedMessage as Message } from 'react-intl'; import { FormattedMessage as Message } from 'react-intl';
import { Button } from 'components/ui/form'; import { Button } from 'app/components/ui/form';
import { FooterMenu } from 'components/footerMenu'; import { FooterMenu } from 'app/components/footerMenu';
import styles from './appInfo.scss'; import styles from './appInfo.scss';
import messages from './AppInfo.intl.json'; import messages from './AppInfo.intl.json';

View File

@ -1,5 +1,5 @@
@import '~components/ui/colors.scss'; @import '~app/components/ui/colors.scss';
@import '~components/ui/fonts.scss'; @import '~app/components/ui/fonts.scss';
.appInfo { .appInfo {
max-width: 270px; max-width: 270px;

View File

@ -1,8 +1,8 @@
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import React from 'react'; import React from 'react';
import errorsDict from 'services/errorsDict'; import errorsDict from 'app/services/errorsDict';
import { PanelBodyHeader } from 'components/ui/Panel'; import { PanelBodyHeader } from 'app/components/ui/Panel';
let autoHideTimer; let autoHideTimer;
function resetTimer() { function resetTimer() {

View File

@ -2,8 +2,8 @@ import React from 'react';
import { FormattedMessage as Message } from 'react-intl'; import { FormattedMessage as Message } from 'react-intl';
import BaseAuthBody from 'components/auth/BaseAuthBody'; import BaseAuthBody from 'app/components/auth/BaseAuthBody';
import { AccountSwitcher } from 'components/accounts'; import { AccountSwitcher } from 'app/components/accounts';
import styles from './chooseAccount.scss'; import styles from './chooseAccount.scss';
import messages from './ChooseAccount.intl.json'; import messages from './ChooseAccount.intl.json';

View File

@ -1,5 +1,5 @@
@import '~components/ui/panel.scss'; @import '~app/components/ui/panel.scss';
@import '~components/ui/fonts.scss'; @import '~app/components/ui/fonts.scss';
.accountSwitcherContainer { .accountSwitcherContainer {
margin-left: -$bodyLeftRightPadding; margin-left: -$bodyLeftRightPadding;

View File

@ -1,11 +1,11 @@
import React from 'react'; import React from 'react';
import { Button } from 'components/ui/form'; import { Button } from 'app/components/ui/form';
import RejectionLink, { import RejectionLink, {
RejectionLinkProps, RejectionLinkProps,
} from 'components/auth/RejectionLink'; } from 'app/components/auth/RejectionLink';
import AuthTitle from 'components/auth/AuthTitle'; import AuthTitle from 'app/components/auth/AuthTitle';
import { MessageDescriptor } from 'react-intl'; import { MessageDescriptor } from 'react-intl';
import { Color } from 'components/ui'; import { Color } from 'app/components/ui';
/** /**
* @param {object} options * @param {object} options

View File

@ -2,9 +2,9 @@ import React from 'react';
import { connect } from 'react-redux'; import { connect } from 'react-redux';
import { FormattedMessage as Message } from 'react-intl'; import { FormattedMessage as Message } from 'react-intl';
import Helmet from 'react-helmet'; import Helmet from 'react-helmet';
import { Button } from 'components/ui/form'; import { Button } from 'app/components/ui/form';
import copy from 'services/copy'; import copy from 'app/services/copy';
import { RootState } from 'reducers'; import { RootState } from 'app/reducers';
import messages from './Finish.intl.json'; import messages from './Finish.intl.json';
import styles from './finish.scss'; import styles from './finish.scss';

View File

@ -1,5 +1,5 @@
@import '~components/ui/colors.scss'; @import '~app/components/ui/colors.scss';
@import '~components/ui/fonts.scss'; @import '~app/components/ui/fonts.scss';
.finishPage { .finishPage {
font-family: $font-family-title; font-family: $font-family-title;
@ -20,12 +20,12 @@
} }
.successBackground { .successBackground {
composes: checkmark from '~components/ui/icons.scss'; composes: checkmark from '~app/components/ui/icons.scss';
@extend .iconBackground; @extend .iconBackground;
} }
.failBackground { .failBackground {
composes: close from '~components/ui/icons.scss'; composes: close from '~app/components/ui/icons.scss';
@extend .iconBackground; @extend .iconBackground;
} }

View File

@ -2,10 +2,10 @@ import React from 'react';
import { FormattedMessage as Message } from 'react-intl'; import { FormattedMessage as Message } from 'react-intl';
import { Input, Captcha } from 'components/ui/form'; import { Input, Captcha } from 'app/components/ui/form';
import { getLogin } from 'components/auth/reducer'; import { getLogin } from 'app/components/auth/reducer';
import { PanelIcon } from 'components/ui/Panel'; import { PanelIcon } from 'app/components/ui/Panel';
import BaseAuthBody from 'components/auth/BaseAuthBody'; import BaseAuthBody from 'app/components/auth/BaseAuthBody';
import styles from './forgotPassword.scss'; import styles from './forgotPassword.scss';
import messages from './ForgotPassword.intl.json'; import messages from './ForgotPassword.intl.json';

View File

@ -1,4 +1,4 @@
@import '~components/ui/colors.scss'; @import '~app/components/ui/colors.scss';
.descriptionText { .descriptionText {
font-size: 15px; font-size: 15px;
@ -8,11 +8,11 @@
} }
.login { .login {
composes: email from '~components/auth/password/password.scss'; composes: email from '~app/components/auth/password/password.scss';
} }
.editLogin { .editLogin {
composes: pencil from '~components/ui/icons.scss'; composes: pencil from '~app/components/ui/icons.scss';
position: relative; position: relative;
bottom: 1px; bottom: 1px;

View File

@ -1,6 +1,6 @@
import React from 'react'; import React from 'react';
import { Input } from 'components/ui/form'; import { Input } from 'app/components/ui/form';
import BaseAuthBody from 'components/auth/BaseAuthBody'; import BaseAuthBody from 'app/components/auth/BaseAuthBody';
import messages from './Login.intl.json'; import messages from './Login.intl.json';

View File

@ -1,8 +1,8 @@
import React from 'react'; import React from 'react';
import { FormattedMessage as Message } from 'react-intl'; import { FormattedMessage as Message } from 'react-intl';
import { PanelIcon } from 'components/ui/Panel'; import { PanelIcon } from 'app/components/ui/Panel';
import { Input } from 'components/ui/form'; import { Input } from 'app/components/ui/form';
import BaseAuthBody from 'components/auth/BaseAuthBody'; import BaseAuthBody from 'app/components/auth/BaseAuthBody';
import styles from './mfa.scss'; import styles from './mfa.scss';
import messages from './Mfa.intl.json'; import messages from './Mfa.intl.json';

View File

@ -1,10 +1,9 @@
import React from 'react'; import React from 'react';
import icons from 'app/components/ui/icons.scss';
import { Input, Checkbox } from 'app/components/ui/form';
import BaseAuthBody from 'app/components/auth/BaseAuthBody';
import authStyles from 'app/components/auth/auth.scss';
import icons from 'components/ui/icons.scss';
import { Input, Checkbox } from 'components/ui/form';
import BaseAuthBody from 'components/auth/BaseAuthBody';
import authStyles from 'components/auth/auth.scss';
import styles from './password.scss'; import styles from './password.scss';
import messages from './Password.intl.json'; import messages from './Password.intl.json';

View File

@ -1,4 +1,4 @@
@import '~components/ui/fonts.scss'; @import '~app/components/ui/fonts.scss';
.avatar { .avatar {
width: 90px; width: 90px;

View File

@ -1,10 +1,8 @@
import React from 'react'; import React from 'react';
import { FormattedMessage as Message } from 'react-intl'; import { FormattedMessage as Message } from 'react-intl';
import icons from 'app/components/ui/icons.scss';
import icons from 'components/ui/icons.scss'; import { PanelBodyHeader } from 'app/components/ui/Panel';
import { PanelBodyHeader } from 'components/ui/Panel'; import BaseAuthBody from 'app/components/auth/BaseAuthBody';
import BaseAuthBody from 'components/auth/BaseAuthBody';
import styles from './permissions.scss'; import styles from './permissions.scss';
import messages from './Permissions.intl.json'; import messages from './Permissions.intl.json';

View File

@ -1,5 +1,5 @@
@import '~components/ui/colors.scss'; @import '~app/components/ui/colors.scss';
@import '~components/ui/fonts.scss'; @import '~app/components/ui/fonts.scss';
.authInfo { .authInfo {
// Отступы сверху и снизу разные т.к. мы ужимаем высоту линии строки с логином на 2 пикселя и из-за этого теряем отступ снизу // Отступы сверху и снизу разные т.к. мы ужимаем высоту линии строки с логином на 2 пикселя и из-за этого теряем отступ снизу

View File

@ -3,8 +3,8 @@ import React from 'react';
import { FormattedMessage as Message } from 'react-intl'; import { FormattedMessage as Message } from 'react-intl';
import { Input } from 'components/ui/form'; import { Input } from 'app/components/ui/form';
import BaseAuthBody from 'components/auth/BaseAuthBody'; import BaseAuthBody from 'app/components/auth/BaseAuthBody';
import styles from './recoverPassword.scss'; import styles from './recoverPassword.scss';
import messages from './RecoverPassword.intl.json'; import messages from './RecoverPassword.intl.json';

View File

@ -1,4 +1,4 @@
@import '~components/ui/colors.scss'; @import '~app/components/ui/colors.scss';
.descriptionText { .descriptionText {
font-size: 15px; font-size: 15px;

View File

@ -1,4 +1,4 @@
import expect from 'test/unexpected'; import expect from 'app/test/unexpected';
import auth from './reducer'; import auth from './reducer';
import { import {
setLogin, setLogin,

View File

@ -1,13 +1,11 @@
import React from 'react'; import React from 'react';
import { FormattedMessage as Message } from 'react-intl'; import { FormattedMessage as Message } from 'react-intl';
import { Link } from 'react-router-dom'; import { Link } from 'react-router-dom';
import { Input, Checkbox, Captcha } from 'app/components/ui/form';
import BaseAuthBody from 'app/components/auth/BaseAuthBody';
import { Input, Checkbox, Captcha } from 'components/ui/form'; import passwordMessages from '../password/Password.intl.json';
import BaseAuthBody from 'components/auth/BaseAuthBody'; import styles from '../auth.scss';
import passwordMessages from 'components/auth/password/Password.intl.json';
import styles from 'components/auth/auth.scss';
import messages from './Register.intl.json'; import messages from './Register.intl.json';
// TODO: password and username can be validate for length and sameness // TODO: password and username can be validate for length and sameness

View File

@ -1,11 +1,9 @@
import React from 'react'; import React from 'react';
import { FormattedMessage as Message } from 'react-intl'; import { FormattedMessage as Message } from 'react-intl';
import { Input, Captcha } from 'app/components/ui/form';
import { Input, Captcha } from 'components/ui/form'; import BaseAuthBody from '../BaseAuthBody';
import registerMessages from 'components/auth/register/Register.intl.json'; import registerMessages from '../register/Register.intl.json';
import BaseAuthBody from 'components/auth/BaseAuthBody';
import styles from './resendActivation.scss'; import styles from './resendActivation.scss';
import messages from './ResendActivation.intl.json'; import messages from './ResendActivation.intl.json';

View File

@ -1,4 +1,4 @@
@import '~components/ui/fonts.scss'; @import '~app/components/ui/fonts.scss';
.description { .description {
font-family: $font-family-title; font-family: $font-family-title;

View File

@ -1,10 +1,10 @@
import React from 'react'; import React from 'react';
import expect from 'test/unexpected'; import expect from 'app/test/unexpected';
import sinon from 'sinon'; import sinon from 'sinon';
import { shallow, mount } from 'enzyme'; import { shallow, mount } from 'enzyme';
import { IntlProvider } from 'react-intl'; import { IntlProvider } from 'react-intl';
import feedback from 'services/api/feedback'; import feedback from 'app/services/api/feedback';
import { User } from 'components/user'; import { User } from 'app/components/user';
import { ContactForm } from './ContactForm'; import { ContactForm } from './ContactForm';

View File

@ -9,13 +9,13 @@ import {
Form, Form,
FormModel, FormModel,
Dropdown, Dropdown,
} from 'components/ui/form'; } from 'app/components/ui/form';
import feedback from 'services/api/feedback'; import feedback from 'app/services/api/feedback';
import icons from 'components/ui/icons.scss'; import icons from 'app/components/ui/icons.scss';
import popupStyles from 'components/ui/popup/popup.scss'; import popupStyles from 'app/components/ui/popup/popup.scss';
import { RootState } from 'reducers'; import { RootState } from 'app/reducers';
import logger from 'services/logger'; import logger from 'app/services/logger';
import { User } from 'components/user'; import { User } from 'app/components/user';
import styles from './contactForm.scss'; import styles from './contactForm.scss';
import messages from './contactForm.intl.json'; import messages from './contactForm.intl.json';

View File

@ -1,6 +1,6 @@
import React from 'react'; import React from 'react';
import { connect } from 'react-redux'; import { connect } from 'react-redux';
import { create as createPopup } from 'components/ui/popup/actions'; import { create as createPopup } from 'app/components/ui/popup/actions';
import ContactForm from './ContactForm'; import ContactForm from './ContactForm';
type Props = React.AnchorHTMLAttributes<HTMLAnchorElement> & { type Props = React.AnchorHTMLAttributes<HTMLAnchorElement> & {

View File

@ -1,11 +1,11 @@
@import '~components/ui/colors.scss'; @import '~app/components/ui/colors.scss';
@import '~components/ui/fonts.scss'; @import '~app/components/ui/fonts.scss';
@import '~components/ui/popup/popup.scss'; @import '~app/components/ui/popup/popup.scss';
/* Form state */ /* Form state */
.contactForm { .contactForm {
composes: popupWrapper from '~components/ui/popup/popup.scss'; composes: popupWrapper from '~app/components/ui/popup/popup.scss';
@include popupBounding(500px); @include popupBounding(500px);
} }
@ -46,13 +46,13 @@
/* Success State */ /* Success State */
.successState { .successState {
composes: popupWrapper from '~components/ui/popup/popup.scss'; composes: popupWrapper from '~app/components/ui/popup/popup.scss';
@include popupBounding(320px); @include popupBounding(320px);
} }
.successBody { .successBody {
composes: body from '~components/ui/popup/popup.scss'; composes: body from '~app/components/ui/popup/popup.scss';
text-align: center; text-align: center;
} }
@ -64,7 +64,7 @@
} }
.successIcon { .successIcon {
composes: checkmark from '~components/ui/icons.scss'; composes: checkmark from '~app/components/ui/icons.scss';
font-size: 90px; font-size: 90px;
color: #aaa; color: #aaa;

View File

@ -2,10 +2,10 @@ import React from 'react';
import classNames from 'classnames'; import classNames from 'classnames';
import { FormattedMessage as Message } from 'react-intl'; import { FormattedMessage as Message } from 'react-intl';
import { Helmet } from 'react-helmet'; import { Helmet } from 'react-helmet';
import { LinkButton } from 'components/ui/form'; import { LinkButton } from 'app/components/ui/form';
import { COLOR_GREEN, COLOR_BLUE } from 'components/ui'; import { COLOR_GREEN, COLOR_BLUE } from 'app/components/ui';
import { ContactLink } from 'components/contact'; import { ContactLink } from 'app/components/contact';
import { OauthAppResponse } from 'services/api/oauth'; import { OauthAppResponse } from 'app/services/api/oauth';
import styles from './applicationsIndex.scss'; import styles from './applicationsIndex.scss';
import messages from './ApplicationsIndex.intl.json'; import messages from './ApplicationsIndex.intl.json';

View File

@ -1,7 +1,7 @@
import oauth from 'services/api/oauth';
import { Dispatch } from 'redux'; import { Dispatch } from 'redux';
import { OauthAppResponse } from 'services/api/oauth'; import { OauthAppResponse } from 'app/services/api/oauth';
import { User } from 'components/user'; import oauth from 'app/services/api/oauth';
import { User } from 'app/components/user';
import { Apps } from './reducer'; import { Apps } from './reducer';

View File

@ -2,14 +2,17 @@ import React from 'react';
import { FormattedMessage as Message } from 'react-intl'; import { FormattedMessage as Message } from 'react-intl';
import { Helmet } from 'react-helmet'; import { Helmet } from 'react-helmet';
import { MessageDescriptor } from 'react-intl'; import { MessageDescriptor } from 'react-intl';
import { OauthAppResponse } from 'services/api/oauth'; import { OauthAppResponse } from 'app/services/api/oauth';
import { ApplicationType } from 'components/dev/apps'; import { ApplicationType } from 'app/components/dev/apps';
import { Form, FormModel, Button } from 'components/ui/form'; import { Form, FormModel, Button } from 'app/components/ui/form';
import { BackButton } from 'components/profile/ProfileForm'; import { BackButton } from 'app/components/profile/ProfileForm';
import { COLOR_GREEN } from 'components/ui'; import { COLOR_GREEN } from 'app/components/ui';
import { TYPE_APPLICATION, TYPE_MINECRAFT_SERVER } from 'components/dev/apps'; import {
import styles from 'components/profile/profileForm.scss'; TYPE_APPLICATION,
import logger from 'services/logger'; TYPE_MINECRAFT_SERVER,
} from 'app/components/dev/apps';
import styles from 'app/components/profile/profileForm.scss';
import logger from 'app/services/logger';
import messages from './ApplicationForm.intl.json'; import messages from './ApplicationForm.intl.json';
import ApplicationTypeSwitcher from './ApplicationTypeSwitcher'; import ApplicationTypeSwitcher from './ApplicationTypeSwitcher';

View File

@ -1,8 +1,8 @@
import React from 'react'; import React from 'react';
import { ApplicationType } from 'components/dev/apps'; import { ApplicationType } from 'app/components/dev/apps';
import { MessageDescriptor } from 'react-intl'; import { MessageDescriptor } from 'react-intl';
import { SKIN_LIGHT } from 'components/ui'; import { SKIN_LIGHT } from 'app/components/ui';
import { Radio } from 'components/ui/form'; import { Radio } from 'app/components/ui/form';
import styles from './applicationTypeSwitcher.scss'; import styles from './applicationTypeSwitcher.scss';

View File

@ -1,9 +1,9 @@
import React from 'react'; import React from 'react';
import { FormattedMessage as Message } from 'react-intl'; import { FormattedMessage as Message } from 'react-intl';
import { OauthAppResponse } from 'services/api/oauth'; import { OauthAppResponse } from 'app/services/api/oauth';
import { Input, FormModel } from 'components/ui/form'; import { Input, FormModel } from 'app/components/ui/form';
import { SKIN_LIGHT } from 'components/ui'; import { SKIN_LIGHT } from 'app/components/ui';
import styles from 'components/profile/profileForm.scss'; import styles from 'app/components/profile/profileForm.scss';
import messages from './ApplicationForm.intl.json'; import messages from './ApplicationForm.intl.json';

View File

@ -1,9 +1,9 @@
import React from 'react'; import React from 'react';
import { FormattedMessage as Message } from 'react-intl'; import { FormattedMessage as Message } from 'react-intl';
import { Input, TextArea, FormModel } from 'components/ui/form'; import { Input, TextArea, FormModel } from 'app/components/ui/form';
import { OauthAppResponse } from 'services/api/oauth'; import { OauthAppResponse } from 'app/services/api/oauth';
import { SKIN_LIGHT } from 'components/ui'; import { SKIN_LIGHT } from 'app/components/ui';
import styles from 'components/profile/profileForm.scss'; import styles from 'app/components/profile/profileForm.scss';
import messages from './ApplicationForm.intl.json'; import messages from './ApplicationForm.intl.json';

View File

@ -1,5 +1,5 @@
@import '~components/ui/fonts.scss'; @import '~app/components/ui/fonts.scss';
@import '~components/ui/colors.scss'; @import '~app/components/ui/colors.scss';
.container { .container {
max-width: 500px; max-width: 500px;
@ -157,7 +157,7 @@
} }
.appItemToggleIcon { .appItemToggleIcon {
composes: arrowRight from '~components/ui/icons.scss'; composes: arrowRight from '~app/components/ui/icons.scss';
position: relative; position: relative;
left: 0; left: 0;
@ -203,7 +203,7 @@ $appDetailsContainerRightLeftPadding: 30px;
} }
.pencilIcon { .pencilIcon {
composes: pencil from '~components/ui/icons.scss'; composes: pencil from '~app/components/ui/icons.scss';
font-size: 14px; font-size: 14px;
position: relative; position: relative;
@ -248,7 +248,7 @@ $appDetailsContainerRightLeftPadding: 30px;
} }
.continueActionLink { .continueActionLink {
composes: textLink from '~index.scss'; composes: textLink from '~app/index.scss';
font-family: $font-family-title; font-family: $font-family-title;
font-size: 14px; font-size: 14px;

View File

Before

Width:  |  Height:  |  Size: 357 B

After

Width:  |  Height:  |  Size: 357 B

View File

Before

Width:  |  Height:  |  Size: 888 B

After

Width:  |  Height:  |  Size: 888 B

View File

Before

Width:  |  Height:  |  Size: 730 B

After

Width:  |  Height:  |  Size: 730 B

View File

@ -2,10 +2,10 @@ import React from 'react';
import { FormattedMessage as Message } from 'react-intl'; import { FormattedMessage as Message } from 'react-intl';
import { Link } from 'react-router-dom'; import { Link } from 'react-router-dom';
import classNames from 'classnames'; import classNames from 'classnames';
import { SKIN_LIGHT, COLOR_BLACK, COLOR_RED } from 'components/ui'; import { SKIN_LIGHT, COLOR_BLACK, COLOR_RED } from 'app/components/ui';
import { Input, Button } from 'components/ui/form'; import { Input, Button } from 'app/components/ui/form';
import { OauthAppResponse } from 'services/api/oauth'; import { OauthAppResponse } from 'app/services/api/oauth';
import Collapse from 'components/ui/collapse'; import Collapse from 'app/components/ui/collapse';
import styles from '../applicationsIndex.scss'; import styles from '../applicationsIndex.scss';
import messages from '../ApplicationsIndex.intl.json'; import messages from '../ApplicationsIndex.intl.json';

View File

@ -1,9 +1,9 @@
import React from 'react'; import React from 'react';
import { restoreScroll } from 'components/ui/scroll/scroll'; import { restoreScroll } from 'app/components/ui/scroll/scroll';
import { FormattedMessage as Message } from 'react-intl'; import { FormattedMessage as Message } from 'react-intl';
import { LinkButton } from 'components/ui/form'; import { LinkButton } from 'app/components/ui/form';
import { COLOR_GREEN } from 'components/ui'; import { COLOR_GREEN } from 'app/components/ui';
import { OauthAppResponse } from 'services/api/oauth'; import { OauthAppResponse } from 'app/services/api/oauth';
import messages from '../ApplicationsIndex.intl.json'; import messages from '../ApplicationsIndex.intl.json';
import styles from '../applicationsIndex.scss'; import styles from '../applicationsIndex.scss';

Some files were not shown because too many files have changed in this diff Show More