]> cat aescling's git repositories - mastodon.git/commitdiff
Use ES module build of react-router-dom (#5264)
authorNolan Lawson <nolan@nolanlawson.com>
Sun, 8 Oct 2017 00:55:58 +0000 (17:55 -0700)
committerEugen Rochko <eugen@zeonfederated.com>
Sun, 8 Oct 2017 00:55:58 +0000 (02:55 +0200)
app/javascript/mastodon/containers/mastodon.js
app/javascript/mastodon/features/account/components/action_bar.js
app/javascript/mastodon/features/compose/components/search_results.js
app/javascript/mastodon/features/compose/index.js
app/javascript/mastodon/features/home_timeline/index.js
app/javascript/mastodon/features/status/components/detailed_status.js
app/javascript/mastodon/features/ui/components/column_link.js
app/javascript/mastodon/features/ui/components/tabs_bar.js
app/javascript/mastodon/features/ui/util/react_router_helpers.js
config/webpack/shared.js

index 31167cbd8e58fceb07a6d8cdd6504a14ac0f013d..ff27a9319e3bb91c5bc74ca6a781e945b5fc7e46 100644 (file)
@@ -3,8 +3,7 @@ import { Provider } from 'react-redux';
 import PropTypes from 'prop-types';
 import configureStore from '../store/configureStore';
 import { showOnboardingOnce } from '../actions/onboarding';
-import BrowserRouter from 'react-router-dom/BrowserRouter';
-import Route from 'react-router-dom/Route';
+import { BrowserRouter, Route } from 'react-router-dom';
 import { ScrollContext } from 'react-router-scroll';
 import UI from '../features/ui';
 import { hydrateStore } from '../actions/store';
index 9e8fea69d129837b65d16f3c7be77a7abcdab8fd..2819ae2521f4c2e1c47151610e9cfea0b811cdb8 100644 (file)
@@ -2,7 +2,7 @@ import React from 'react';
 import ImmutablePropTypes from 'react-immutable-proptypes';
 import PropTypes from 'prop-types';
 import DropdownMenuContainer from '../../../containers/dropdown_menu_container';
-import Link from 'react-router-dom/Link';
+import { Link } from 'react-router-dom';
 import { defineMessages, injectIntl, FormattedMessage, FormattedNumber } from 'react-intl';
 
 const messages = defineMessages({
index ae4d1e86ae1089d55aac8852e070506c803be571..8350d20a5b41c04914aadbc22dc7a6bb1b637c76 100644 (file)
@@ -3,7 +3,7 @@ import ImmutablePropTypes from 'react-immutable-proptypes';
 import { FormattedMessage } from 'react-intl';
 import AccountContainer from '../../../containers/account_container';
 import StatusContainer from '../../../containers/status_container';
-import Link from 'react-router-dom/Link';
+import { Link } from 'react-router-dom';
 import ImmutablePureComponent from 'react-immutable-pure-component';
 
 export default class SearchResults extends ImmutablePureComponent {
index 0b686ddb3edbf9d28cf603597a34700ba9f483d7..6166fce3cbd34f951a8ffd09f1f1d61a95c690cc 100644 (file)
@@ -5,7 +5,7 @@ import PropTypes from 'prop-types';
 import ImmutablePropTypes from 'react-immutable-proptypes';
 import { connect } from 'react-redux';
 import { mountCompose, unmountCompose } from '../../actions/compose';
-import Link from 'react-router-dom/Link';
+import { Link } from 'react-router-dom';
 import { injectIntl, defineMessages } from 'react-intl';
 import SearchContainer from './containers/search_container';
 import Motion from 'react-motion/lib/Motion';
index 6021299d64a6044cffea9ccbe405c73c9601bec9..be1e2d78c68746540c7dcca9a691f1d27cd51b14 100644 (file)
@@ -8,7 +8,7 @@ import ColumnHeader from '../../components/column_header';
 import { addColumn, removeColumn, moveColumn } from '../../actions/columns';
 import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
 import ColumnSettingsContainer from './containers/column_settings_container';
-import Link from 'react-router-dom/Link';
+import { Link } from 'react-router-dom';
 
 const messages = defineMessages({
   title: { id: 'column.home', defaultMessage: 'Home' },
index 87fe01897986d7858aa245258ed27c7c89d205f5..4fd1c2ec0befe9ad3aebd3d7c373ce912d510f8a 100644 (file)
@@ -6,7 +6,7 @@ import DisplayName from '../../../components/display_name';
 import StatusContent from '../../../components/status_content';
 import MediaGallery from '../../../components/media_gallery';
 import AttachmentList from '../../../components/attachment_list';
-import Link from 'react-router-dom/Link';
+import { Link } from 'react-router-dom';
 import { FormattedDate, FormattedNumber } from 'react-intl';
 import CardContainer from '../containers/card_container';
 import ImmutablePureComponent from 'react-immutable-pure-component';
index ad7ec9318d128a507b0bac74c1a1cbce448827f8..5425219c4daf238dc44e761884c3fe27c6b919b1 100644 (file)
@@ -1,6 +1,6 @@
 import React from 'react';
 import PropTypes from 'prop-types';
-import Link from 'react-router-dom/Link';
+import { Link } from 'react-router-dom';
 
 const ColumnLink = ({ icon, text, to, href, method }) => {
   if (href) {
index af9e6bf453c7ec47fddd96067103104bfc4b4f65..7694e5ab336c890b145d53b45be59761c42f7605 100644 (file)
@@ -1,6 +1,6 @@
 import React from 'react';
 import PropTypes from 'prop-types';
-import NavLink from 'react-router-dom/NavLink';
+import { NavLink } from 'react-router-dom';
 import { FormattedMessage, injectIntl } from 'react-intl';
 import { debounce } from 'lodash';
 import { isUserTouching } from '../../../is_mobile';
index ede578e5600fff1960f5dc9c78932f364b5e499b..86b30d4887642cb1d4410803a2107e65e93fe57b 100644 (file)
@@ -1,7 +1,6 @@
 import React from 'react';
 import PropTypes from 'prop-types';
-import Switch from 'react-router-dom/Switch';
-import Route from 'react-router-dom/Route';
+import { Switch, Route } from 'react-router-dom';
 
 import ColumnLoading from '../components/column_loading';
 import BundleColumnError from '../components/bundle_column_error';
index ea2da6aa7e8596c721932eb431855e9c567d495f..cd642a28ab30dd0212f48a01f57024b8771e9ec9 100644 (file)
@@ -48,6 +48,13 @@ module.exports = {
 
   plugins: [
     new webpack.EnvironmentPlugin(JSON.parse(JSON.stringify(env))),
+    new webpack.NormalModuleReplacementPlugin(
+      /^history\//, (resource) => {
+        // temporary fix for https://github.com/ReactTraining/react-router/issues/5576
+        // to reduce bundle size
+        resource.request = resource.request.replace(/^history/, 'history/es');
+      }
+    ),
     new ExtractTextPlugin(env.NODE_ENV === 'production' ? '[name]-[hash].css' : '[name].css'),
     new ManifestPlugin({
       publicPath: output.publicPath,