mirror of
https://github.com/vector-im/element-call.git
synced 2024-11-27 00:48:06 +08:00
af0bd795b5
react-rxjs is the library we've been using to connect our React components to view models and consume observables. However, after spending some time with react-rxjs, I feel that it's a very heavy-handed solution. It requires us to sprinkle <Subscribe /> and <RemoveSubscribe /> components all throughout the code, and makes React go through an extra render cycle whenever we mount a component that binds to a view model. What I really want is a lightweight React hook that just gets the current value out of a plain observable, without any extra setup. Luckily the observable-hooks library with its useObservableEagerState hook seems to do just that—and it's more actively maintained, too!
49 lines
1.2 KiB
JavaScript
49 lines
1.2 KiB
JavaScript
const COPYRIGHT_HEADER = `/*
|
|
Copyright %%CURRENT_YEAR%% New Vector Ltd
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
*/
|
|
|
|
`;
|
|
|
|
module.exports = {
|
|
plugins: ["matrix-org"],
|
|
extends: [
|
|
"plugin:matrix-org/react",
|
|
"plugin:matrix-org/a11y",
|
|
"plugin:matrix-org/typescript",
|
|
"prettier",
|
|
],
|
|
parserOptions: {
|
|
ecmaVersion: "latest",
|
|
sourceType: "module",
|
|
project: ["./tsconfig.json"],
|
|
},
|
|
env: {
|
|
browser: true,
|
|
node: true,
|
|
},
|
|
rules: {
|
|
"matrix-org/require-copyright-header": ["error", COPYRIGHT_HEADER],
|
|
"jsx-a11y/media-has-caption": "off",
|
|
// We should use the js-sdk logger, never console directly.
|
|
"no-console": ["error"],
|
|
"react/display-name": "error",
|
|
},
|
|
settings: {
|
|
react: {
|
|
version: "detect",
|
|
},
|
|
},
|
|
};
|