Commit graph

24 commits

Author SHA1 Message Date
Travis Ralston
457e63f24e Fix reference to js-sdk lint config 2020-01-15 10:25:36 -07:00
Travis Ralston
20a615396b Implementation of new potential skinning mechanism
With a switch to Only One Webpack™ we need a way to help developers generate the component index without a concurrent watch task. The best way to do this is to have developers import their components, but how do they do that when we support skins? The answer in this commit is to change skinning.

Skinning now expects to receive your list of overrides instead of the react-sdk+branded components. For Riot this means we send over *only* the Vector components and not Vector+react-sdk. 

Components can then be annotated with the `replaceComponent` decorator to have them be skinnable. The decorator must take a string with the dot path of the component because we can't reliably calculate it ourselves, sadly. 

The decorator does a call to `getComponent` which is where the important part of the branded components not including the react-sdk is important: if the branded app includes the react-sdk then the decorator gets executed before the skin has finished loading, leading to all kinds of fun errors. This is also why the skinner lazily loads the react-sdk components to avoid importing them too early, breaking the app.

The decorator will end up receiving null for a component because of the getComponent loop mentioned: the require() call is still in progress when the decorator is called, therefore we can't error out. All usages of getComponent() within the app are safe to not need such an error (the return won't be null, and developers shouldn't use getComponent() after this commit anyways).

The AuthPage, being a prominent component, has been converted to demonstrate this working. Changes to riot-web are required to have this work.

The reskindex script has also been altered to reflect these skinning changes - it no longer should set the react-sdk as a parent. The eventual end goal is to get rid of `getComponent()` entirely as it'll be easily replaced by imports.
2019-12-12 19:48:45 -07:00
Michael Telatynski
df02eb8e92 Add UserInfo panel (consolidation of MemberInfo & GroupMemberInfo) Labs
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-10-07 16:52:50 +01:00
Bruno Windels
f51d25c394 declare LANGUAGES_FILE as global in eslint config 2019-02-18 16:36:11 +01:00
Bruno Windels
87ddb8a453
Merge pull request from matrix-org/bwindels/customtags
Bring back custom tags, also badges on communities
2019-02-07 11:37:17 +00:00
Bruno Windels
b9b83605b6 leave my regex along, lint 2019-02-05 19:31:14 +00:00
David Baker
32dbbbe7b1 Remove the arrow-paren lint rule
It's now in the base lint rules file: https://github.com/matrix-org/matrix-js-sdk/pull/834
2019-02-05 13:13:20 +00:00
Travis Ralston
a488304410 Appease the linter
Appease the linter round 2

Appease the linter round 3

Appease the linter round 4

Appease the linter round 5
2019-01-21 18:41:49 -07:00
J. Ryan Stinnett
b036e59021 Enable ESLint rule to require defined components in JSX
Signed-off-by: J. Ryan Stinnett <jryans@gmail.com>
2018-12-18 17:01:37 +00:00
Matthew Hodgson
4439a04689 fix lint 2018-05-20 23:43:42 +01:00
Matthew Hodgson
ebfcea8b78
Merge pull request from matrix-org/matthew/lint-changes
relax lint for jsx-curly-spacing and arrow-parens
2018-05-02 23:33:04 +01:00
Matthew Hodgson
09dcfb0a00 relax lint for jsx-curly-spacing and arrow-parens 2018-05-02 23:27:19 +01:00
David Baker
adf3e2f376 Change jsx-no-bind to warn 2018-05-02 17:36:29 +01:00
Luke Barnard
c429b13b05 Add eslint rule keyword-spacing
Because we follow it almost all of the time.
2017-11-16 13:18:58 +00:00
Luke Barnard
1c82df216e Ignore unused React when using JSX 2017-11-10 16:11:59 +00:00
Luke Barnard
6b9a2909df Add rule to enforce spacing in curly brackets in JSX children
This required an updated in version of eslint-plugin-react to 7.4.0.
2017-09-28 11:21:06 +01:00
Luke Barnard
e70336af11 Add rule to enforce JSX tag spacing 2017-09-28 10:27:03 +01:00
Luke Barnard
6eedf8b073 Add eslint rule to disallow spaces inside of curly braces 2017-09-28 10:06:51 +01:00
Michael Telatynski
86a5ff42e9 Change max-len 90->120
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-04-29 14:23:08 +01:00
Aviral Dasgupta
0e66b370d4
fix eslint's no-invalid-this rule for class properties 2017-02-16 16:49:00 +05:30
Richard van der Hoff
a65d94e8ce Reinstate max-len lint configs
Apparenltly setting the ignorePattern on max-len (as per cf049f2) makes eslint
forget the `ignoreComments` and `code` settings from js-sdk, so reinstate
these.
2017-02-02 10:52:11 +00:00
Richard van der Hoff
cf049f2d75 Exempt lines which look like pure JSX from the maxlen line 2017-02-01 09:59:46 +00:00
David Baker
905508f1ce Correctly get the path of the js-sdk .eslintrc.js
So we work correctly when we're included in another module
2017-01-23 17:33:09 +00:00
David Baker
4ba224aac3 Use eslint config from the js sdk
Extend the js sdk's eslint config to give as consistent a code
style as possible. Add react/jsx/flow stuff that we use here.
2017-01-20 14:08:14 +00:00