@oanda/labs-sentiment-widget 1.0.9 → 1.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +28 -0
- package/dist/main/SentimentWidget/SentimentWidget.js +5 -1
- package/dist/main/SentimentWidget/SentimentWidget.js.map +1 -1
- package/dist/main/SentimentWidget/Tool.js +9 -2
- package/dist/main/SentimentWidget/Tool.js.map +1 -1
- package/dist/main/SentimentWidget/Widget.js +4 -2
- package/dist/main/SentimentWidget/Widget.js.map +1 -1
- package/dist/main/SentimentWidget/render.js +2 -0
- package/dist/main/SentimentWidget/render.js.map +1 -1
- package/dist/main/SentimentWidget/types.js.map +1 -1
- package/dist/main/gql/getInstrumentSentiment.js +1 -1
- package/dist/main/gql/getInstrumentSentiment.js.map +1 -1
- package/dist/main/gql/getSentimentList.js +1 -1
- package/dist/main/gql/getSentimentList.js.map +1 -1
- package/dist/module/SentimentWidget/SentimentWidget.js +5 -1
- package/dist/module/SentimentWidget/SentimentWidget.js.map +1 -1
- package/dist/module/SentimentWidget/Tool.js +9 -2
- package/dist/module/SentimentWidget/Tool.js.map +1 -1
- package/dist/module/SentimentWidget/Widget.js +4 -2
- package/dist/module/SentimentWidget/Widget.js.map +1 -1
- package/dist/module/SentimentWidget/render.js +2 -0
- package/dist/module/SentimentWidget/render.js.map +1 -1
- package/dist/module/SentimentWidget/types.js.map +1 -1
- package/dist/module/gql/getInstrumentSentiment.js +1 -1
- package/dist/module/gql/getInstrumentSentiment.js.map +1 -1
- package/dist/module/gql/getSentimentList.js +1 -1
- package/dist/module/gql/getSentimentList.js.map +1 -1
- package/dist/types/SentimentWidget/SentimentWidget.d.ts +1 -1
- package/dist/types/SentimentWidget/Tool.d.ts +2 -1
- package/dist/types/SentimentWidget/Widget.d.ts +2 -3
- package/dist/types/SentimentWidget/render.d.ts +2 -2
- package/dist/types/SentimentWidget/types.d.ts +3 -2
- package/package.json +3 -3
- package/src/SentimentWidget/SentimentWidget.tsx +3 -3
- package/src/SentimentWidget/Tool.tsx +9 -3
- package/src/SentimentWidget/Widget.tsx +3 -1
- package/src/SentimentWidget/render.tsx +4 -2
- package/src/SentimentWidget/types.ts +3 -2
- package/src/gql/getInstrumentSentiment.ts +2 -0
- package/src/gql/getSentimentList.ts +6 -2
- package/test/Tool.test.tsx +4 -1
- package/test/Widget.test.tsx +4 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,34 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## 1.0.10 (2023-09-29)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
## 1.0.9 (2023-09-28)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## 1.0.8 (2023-09-27)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
## 1.0.7 (2023-09-26)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
## 1.0.6 (2023-09-21)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
## 1.0.5 (2023-09-13)
|
|
27
|
+
|
|
28
|
+
**Note:** Version bump only for package @oanda/labs-sentiment-widget
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
6
34
|
## 1.0.9 (2023-09-28)
|
|
7
35
|
|
|
8
36
|
|
|
@@ -12,6 +12,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
12
12
|
const SentimentWidget = _ref => {
|
|
13
13
|
let {
|
|
14
14
|
graphqlUrl,
|
|
15
|
+
division,
|
|
15
16
|
instrument
|
|
16
17
|
} = _ref;
|
|
17
18
|
const client = new _client.ApolloClient({
|
|
@@ -21,8 +22,11 @@ const SentimentWidget = _ref => {
|
|
|
21
22
|
return _react.default.createElement(_client.ApolloProvider, {
|
|
22
23
|
client: client
|
|
23
24
|
}, instrument ? _react.default.createElement(_Widget.Widget, {
|
|
25
|
+
division: division,
|
|
24
26
|
instrument: instrument
|
|
25
|
-
}) : _react.default.createElement(_Tool.Tool,
|
|
27
|
+
}) : _react.default.createElement(_Tool.Tool, {
|
|
28
|
+
division: division
|
|
29
|
+
}));
|
|
26
30
|
};
|
|
27
31
|
exports.SentimentWidget = SentimentWidget;
|
|
28
32
|
//# sourceMappingURL=SentimentWidget.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SentimentWidget.js","names":["_react","_interopRequireDefault","require","_client","_Widget","_Tool","obj","__esModule","default","SentimentWidget","_ref","graphqlUrl","instrument","client","ApolloClient","uri","cache","InMemoryCache","createElement","ApolloProvider","Widget","Tool","exports"],"sources":["../../../src/SentimentWidget/SentimentWidget.tsx"],"sourcesContent":["import React from 'react';\nimport { ApolloClient, InMemoryCache, ApolloProvider } from '@apollo/client';\nimport { Widget } from './Widget';\nimport { Tool } from './Tool';\nimport { SentimentConfig } from './types';\n\nconst SentimentWidget = ({ graphqlUrl, instrument }: SentimentConfig) => {\n const client = new ApolloClient({\n uri: graphqlUrl,\n cache: new InMemoryCache(),\n });\n\n return (\n <ApolloProvider client={client}>\n {instrument ? (\n <Widget instrument={instrument} />\n ) : (\n <Tool />\n )}\n </ApolloProvider>\n );\n};\n\nexport { SentimentWidget };\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AAA8B,SAAAD,uBAAAK,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAG9B,MAAMG,eAAe,GAAGC,IAAA,
|
|
1
|
+
{"version":3,"file":"SentimentWidget.js","names":["_react","_interopRequireDefault","require","_client","_Widget","_Tool","obj","__esModule","default","SentimentWidget","_ref","graphqlUrl","division","instrument","client","ApolloClient","uri","cache","InMemoryCache","createElement","ApolloProvider","Widget","Tool","exports"],"sources":["../../../src/SentimentWidget/SentimentWidget.tsx"],"sourcesContent":["import React from 'react';\nimport { ApolloClient, InMemoryCache, ApolloProvider } from '@apollo/client';\nimport { Widget } from './Widget';\nimport { Tool } from './Tool';\nimport { SentimentConfig } from './types';\n\nconst SentimentWidget = ({ graphqlUrl, division, instrument }: SentimentConfig) => {\n const client = new ApolloClient({\n uri: graphqlUrl,\n cache: new InMemoryCache(),\n });\n\n return (\n <ApolloProvider client={client}>\n {instrument ? (\n <Widget division={division} instrument={instrument} />\n ) : (\n <Tool division={division} />\n )}\n </ApolloProvider>\n );\n};\n\nexport { SentimentWidget };\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AAA8B,SAAAD,uBAAAK,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAG9B,MAAMG,eAAe,GAAGC,IAAA,IAA2D;EAAA,IAA1D;IAAEC,UAAU;IAAEC,QAAQ;IAAEC;EAA4B,CAAC,GAAAH,IAAA;EAC5E,MAAMI,MAAM,GAAG,IAAIC,oBAAY,CAAC;IAC9BC,GAAG,EAAEL,UAAU;IACfM,KAAK,EAAE,IAAIC,qBAAa,CAAC;EAC3B,CAAC,CAAC;EAEF,OACElB,MAAA,CAAAQ,OAAA,CAAAW,aAAA,CAAChB,OAAA,CAAAiB,cAAc;IAACN,MAAM,EAAEA;EAAO,GAC5BD,UAAU,GACTb,MAAA,CAAAQ,OAAA,CAAAW,aAAA,CAACf,OAAA,CAAAiB,MAAM;IAACT,QAAQ,EAAEA,QAAS;IAACC,UAAU,EAAEA;EAAW,CAAE,CAAC,GAEtDb,MAAA,CAAAQ,OAAA,CAAAW,aAAA,CAACd,KAAA,CAAAiB,IAAI;IAACV,QAAQ,EAAEA;EAAS,CAAE,CAEf,CAAC;AAErB,CAAC;AAACW,OAAA,CAAAd,eAAA,GAAAA,eAAA"}
|
|
@@ -13,14 +13,21 @@ var _utils = require("./utils");
|
|
|
13
13
|
var _SortSwitch = require("./components/SortSwitch");
|
|
14
14
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
15
15
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
16
|
-
const Tool =
|
|
16
|
+
const Tool = _ref => {
|
|
17
|
+
let {
|
|
18
|
+
division
|
|
19
|
+
} = _ref;
|
|
17
20
|
const [sort, setSort] = (0, _react.useState)(_types.SentimentSort.Bullish);
|
|
18
21
|
const [sortedData, setSortedData] = (0, _react.useState)(new Array(20).fill({}));
|
|
19
22
|
const {
|
|
20
23
|
loading,
|
|
21
24
|
data,
|
|
22
25
|
error
|
|
23
|
-
} = (0, _client.useQuery)(_getSentimentList.getSentimentList
|
|
26
|
+
} = (0, _client.useQuery)(_getSentimentList.getSentimentList, {
|
|
27
|
+
variables: {
|
|
28
|
+
division
|
|
29
|
+
}
|
|
30
|
+
});
|
|
24
31
|
(0, _react.useEffect)(() => {
|
|
25
32
|
if (data) {
|
|
26
33
|
setSortedData((0, _utils.sortData)(data.sentimentList, sort));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tool.js","names":["_react","_interopRequireWildcard","require","_labsWidgetCommon","_client","_getSentimentList","_types","_utils","_SortSwitch","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","Tool","sort","setSort","useState","SentimentSort","Bullish","sortedData","setSortedData","Array","fill","loading","data","error","useQuery","getSentimentList","useEffect","sortData","sentimentList","createElement","className","ChartError","Fragment","SortSwitch","disabled","selected","SelectedArrow","UP","DOWN","onClickButtonDown","Bearish","onClickButtonUp","map","item","index","name","Loader","size","LoaderSize","md","Sentiment","isLoading","height","SentimentHeight","sentiment","exports"],"sources":["../../../src/SentimentWidget/Tool.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport {\n Sentiment, SentimentHeight, Loader, LoaderSize, ChartError,\n} from '@oanda/labs-widget-common';\nimport { useQuery } from '@apollo/client';\nimport { getSentimentList } from '../gql/getSentimentList';\nimport {
|
|
1
|
+
{"version":3,"file":"Tool.js","names":["_react","_interopRequireWildcard","require","_labsWidgetCommon","_client","_getSentimentList","_types","_utils","_SortSwitch","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","Tool","_ref","division","sort","setSort","useState","SentimentSort","Bullish","sortedData","setSortedData","Array","fill","loading","data","error","useQuery","getSentimentList","variables","useEffect","sortData","sentimentList","createElement","className","ChartError","Fragment","SortSwitch","disabled","selected","SelectedArrow","UP","DOWN","onClickButtonDown","Bearish","onClickButtonUp","map","item","index","name","Loader","size","LoaderSize","md","Sentiment","isLoading","height","SentimentHeight","sentiment","exports"],"sources":["../../../src/SentimentWidget/Tool.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport {\n Sentiment, SentimentHeight, Loader, LoaderSize, ChartError,\n} from '@oanda/labs-widget-common';\nimport { useQuery } from '@apollo/client';\nimport { getSentimentList } from '../gql/getSentimentList';\nimport {\n SentimentListResponse, SentimentSort, SentimentListData, SentimentToolConfig,\n} from './types';\nimport { sortData } from './utils';\nimport { SelectedArrow, SortSwitch } from './components/SortSwitch';\n\nconst Tool = ({ division }: SentimentToolConfig) => {\n const [sort, setSort] = useState(SentimentSort.Bullish);\n const [sortedData, setSortedData] = useState<SentimentListData[]>(new Array(20).fill({}));\n const { loading, data, error } = useQuery<SentimentListResponse>(getSentimentList, {\n variables: {\n division,\n },\n });\n\n useEffect(() => {\n if (data) {\n setSortedData(sortData(data.sentimentList, sort));\n }\n }, [data, sort]);\n\n return (\n <div data-testid=\"sentiment-tool\" className=\"text-sm text-black\">\n {error ? (\n <div className=\"flex h-[200px] items-center justify-center border border-solid border-grey p-2\">\n <ChartError />\n </div>\n ) : (\n <>\n <div className=\"flex justify-end pb-5\">\n <SortSwitch\n disabled={loading}\n selected={sort === SentimentSort.Bullish ? SelectedArrow.UP : SelectedArrow.DOWN}\n onClickButtonDown={() => setSort(SentimentSort.Bearish)}\n onClickButtonUp={() => setSort(SentimentSort.Bullish)}\n />\n </div>\n <div className=\"flex flex-col border border-solid border-grey p-2\">\n {sortedData.map((item, index) => (\n <div className=\"flex h-8 w-full items-center\" key={item.name || index}>\n <div className=\"w-[120px] shrink-0\">\n {loading ? (\n <Loader size={LoaderSize.md} />\n ) : (\n <p className=\"truncate font-sans font-bold\">{item.name || '\\u2014'}</p>\n )}\n </div>\n <Sentiment\n isLoading={loading}\n height={SentimentHeight.md}\n sentiment={item.sentiment}\n />\n </div>\n ))}\n </div>\n </>\n )}\n </div>\n );\n};\n\nexport { Tool };\n"],"mappings":"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"}
|
|
@@ -11,7 +11,8 @@ var _getInstrumentSentiment = require("../gql/getInstrumentSentiment");
|
|
|
11
11
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
12
12
|
const Widget = _ref => {
|
|
13
13
|
let {
|
|
14
|
-
instrument
|
|
14
|
+
instrument,
|
|
15
|
+
division
|
|
15
16
|
} = _ref;
|
|
16
17
|
const {
|
|
17
18
|
loading,
|
|
@@ -19,7 +20,8 @@ const Widget = _ref => {
|
|
|
19
20
|
error
|
|
20
21
|
} = (0, _client.useQuery)(_getInstrumentSentiment.getInstrumentSentiment, {
|
|
21
22
|
variables: {
|
|
22
|
-
name: instrument
|
|
23
|
+
name: instrument,
|
|
24
|
+
division
|
|
23
25
|
}
|
|
24
26
|
});
|
|
25
27
|
const {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Widget.js","names":["_react","_interopRequireDefault","require","_labsWidgetCommon","_client","_getInstrumentSentiment","obj","__esModule","default","Widget","_ref","instrument","loading","data","error","useQuery","getInstrumentSentiment","variables","name","sentiment","isError","shortPercent","longPercent","undefined","createElement","className","Fragment","Sentiment","height","SentimentHeight","md","Error","Spinner","exports"],"sources":["../../../src/SentimentWidget/Widget.tsx"],"sourcesContent":["import React from 'react';\nimport {\n Sentiment, SentimentHeight, Spinner, Error,\n} from '@oanda/labs-widget-common';\nimport { useQuery } from '@apollo/client';\nimport { getInstrumentSentiment } from '../gql/getInstrumentSentiment';\n\nconst Widget = ({ instrument }:
|
|
1
|
+
{"version":3,"file":"Widget.js","names":["_react","_interopRequireDefault","require","_labsWidgetCommon","_client","_getInstrumentSentiment","obj","__esModule","default","Widget","_ref","instrument","division","loading","data","error","useQuery","getInstrumentSentiment","variables","name","sentiment","isError","shortPercent","longPercent","undefined","createElement","className","Fragment","Sentiment","height","SentimentHeight","md","Error","Spinner","exports"],"sources":["../../../src/SentimentWidget/Widget.tsx"],"sourcesContent":["import React from 'react';\nimport {\n Sentiment, SentimentHeight, Spinner, Error,\n} from '@oanda/labs-widget-common';\nimport { useQuery } from '@apollo/client';\nimport { getInstrumentSentiment } from '../gql/getInstrumentSentiment';\nimport { SentimentWidgetConfig } from './types';\n\nconst Widget = ({ instrument, division }: SentimentWidgetConfig) => {\n const { loading, data, error } = useQuery(getInstrumentSentiment, {\n variables: {\n name: instrument,\n division,\n },\n });\n\n const { sentiment } = data?.sentiment[0] || {};\n const isError = error\n || (sentiment?.shortPercent === 0 && sentiment?.longPercent === 0)\n || sentiment?.shortPercent === undefined\n || sentiment?.longPercent === undefined;\n\n return (\n <div data-testid=\"sentiment-widget\" className=\"flex items-center justify-between border border-solid border-grey p-4 text-sm text-black\">\n {!loading\n ? (\n <>\n <p className=\"mr-12 font-sans font-bold\">{instrument}</p>\n {!isError && <Sentiment height={SentimentHeight.md} sentiment={sentiment} />}\n {isError && <Error />}\n </>\n ) : <Spinner />}\n </div>\n );\n};\n\nexport { Widget };\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAD,OAAA;AAGA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,uBAAA,GAAAH,OAAA;AAAuE,SAAAD,uBAAAK,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAGvE,MAAMG,MAAM,GAAGC,IAAA,IAAqD;EAAA,IAApD;IAAEC,UAAU;IAAEC;EAAgC,CAAC,GAAAF,IAAA;EAC7D,MAAM;IAAEG,OAAO;IAAEC,IAAI;IAAEC;EAAM,CAAC,GAAG,IAAAC,gBAAQ,EAACC,8CAAsB,EAAE;IAChEC,SAAS,EAAE;MACTC,IAAI,EAAER,UAAU;MAChBC;IACF;EACF,CAAC,CAAC;EAEF,MAAM;IAAEQ;EAAU,CAAC,GAAG,CAAAN,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEM,SAAS,CAAC,CAAC,CAAC,KAAI,CAAC,CAAC;EAC9C,MAAMC,OAAO,GAAGN,KAAK,IACf,CAAAK,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEE,YAAY,MAAK,CAAC,IAAI,CAAAF,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEG,WAAW,MAAK,CAAE,IAC/D,CAAAH,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEE,YAAY,MAAKE,SAAS,IACrC,CAAAJ,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEG,WAAW,MAAKC,SAAS;EAEzC,OACExB,MAAA,CAAAQ,OAAA,CAAAiB,aAAA;IAAK,eAAY,kBAAkB;IAACC,SAAS,EAAC;EAA0F,GACrI,CAACb,OAAO,GAELb,MAAA,CAAAQ,OAAA,CAAAiB,aAAA,CAAAzB,MAAA,CAAAQ,OAAA,CAAAmB,QAAA,QACE3B,MAAA,CAAAQ,OAAA,CAAAiB,aAAA;IAAGC,SAAS,EAAC;EAA2B,GAAEf,UAAc,CAAC,EACxD,CAACU,OAAO,IAAIrB,MAAA,CAAAQ,OAAA,CAAAiB,aAAA,CAACtB,iBAAA,CAAAyB,SAAS;IAACC,MAAM,EAAEC,iCAAe,CAACC,EAAG;IAACX,SAAS,EAAEA;EAAU,CAAE,CAAC,EAC3EC,OAAO,IAAIrB,MAAA,CAAAQ,OAAA,CAAAiB,aAAA,CAACtB,iBAAA,CAAA6B,KAAK,MAAE,CACpB,CAAC,GACDhC,MAAA,CAAAQ,OAAA,CAAAiB,aAAA,CAACtB,iBAAA,CAAA8B,OAAO,MAAE,CACb,CAAC;AAEV,CAAC;AAACC,OAAA,CAAAzB,MAAA,GAAAA,MAAA"}
|
|
@@ -6,10 +6,12 @@ var _SentimentWidget = require("./SentimentWidget");
|
|
|
6
6
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
7
7
|
const {
|
|
8
8
|
graphqlUrl,
|
|
9
|
+
division,
|
|
9
10
|
instrument
|
|
10
11
|
} = window.sentimentWidgetConfig;
|
|
11
12
|
(0, _reactDom.render)(_react.default.createElement(_SentimentWidget.SentimentWidget, {
|
|
12
13
|
graphqlUrl: graphqlUrl,
|
|
14
|
+
division: division,
|
|
13
15
|
instrument: instrument
|
|
14
16
|
}), document.getElementById('sentiment'));
|
|
15
17
|
//# sourceMappingURL=render.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","names":["_react","_interopRequireDefault","require","_reactDom","_SentimentWidget","obj","__esModule","default","graphqlUrl","instrument","window","sentimentWidgetConfig","render","createElement","SentimentWidget","document","getElementById"],"sources":["../../../src/SentimentWidget/render.tsx"],"sourcesContent":["import React from 'react';\nimport { render } from 'react-dom';\nimport { SentimentWidget } from './SentimentWidget';\nimport {
|
|
1
|
+
{"version":3,"file":"render.js","names":["_react","_interopRequireDefault","require","_reactDom","_SentimentWidget","obj","__esModule","default","graphqlUrl","division","instrument","window","sentimentWidgetConfig","render","createElement","SentimentWidget","document","getElementById"],"sources":["../../../src/SentimentWidget/render.tsx"],"sourcesContent":["import React from 'react';\nimport { render } from 'react-dom';\nimport { SentimentWidget } from './SentimentWidget';\nimport { SentimentConfig } from './types';\n\ndeclare global {\n interface Window {\n sentimentWidgetConfig: SentimentConfig;\n }\n}\n\nconst {\n graphqlUrl,\n division,\n instrument,\n} = window.sentimentWidgetConfig;\n\nrender(\n <SentimentWidget\n graphqlUrl={graphqlUrl}\n division={division}\n instrument={instrument}\n />,\n document.getElementById('sentiment'),\n);\n"],"mappings":";;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,gBAAA,GAAAF,OAAA;AAAoD,SAAAD,uBAAAI,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AASpD,MAAM;EACJG,UAAU;EACVC,QAAQ;EACRC;AACF,CAAC,GAAGC,MAAM,CAACC,qBAAqB;AAEhC,IAAAC,gBAAM,EACJb,MAAA,CAAAO,OAAA,CAAAO,aAAA,CAACV,gBAAA,CAAAW,eAAe;EACdP,UAAU,EAAEA,UAAW;EACvBC,QAAQ,EAAEA,QAAS;EACnBC,UAAU,EAAEA;AAAW,CACxB,CAAC,EACFM,QAAQ,CAACC,cAAc,CAAC,WAAW,CACrC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":["SentimentSort","exports"],"sources":["../../../src/SentimentWidget/types.ts"],"sourcesContent":["export interface SentimentConfig {\n graphqlUrl: string;\n instrument?: string;\n}\n\nexport interface SentimentWidgetConfig {\n
|
|
1
|
+
{"version":3,"file":"types.js","names":["SentimentSort","exports"],"sources":["../../../src/SentimentWidget/types.ts"],"sourcesContent":["export interface SentimentConfig {\n graphqlUrl: string;\n division: string;\n instrument?: string;\n}\n\nexport interface SentimentWidgetConfig {\n division: string;\n instrument: string;\n}\n\nexport interface SentimentToolConfig {\n division: string;\n}\n\nexport interface SentimentListData {\n name: string;\n sentiment: {\n shortPercent: number;\n longPercent: number;\n }\n}\n\nexport interface SentimentListResponse {\n sentimentList: SentimentListData[]\n}\n\nexport enum SentimentSort {\n Bearish = 'BEARISH',\n Bullish = 'BULLISH',\n}\n"],"mappings":";;;;;;IA2BYA,aAAa,GAAAC,OAAA,CAAAD,aAAA,aAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAA,OAAbA,aAAa;AAAA"}
|
|
@@ -7,5 +7,5 @@ exports.getInstrumentSentiment = void 0;
|
|
|
7
7
|
var _client = require("@apollo/client");
|
|
8
8
|
var _templateObject;
|
|
9
9
|
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
|
10
|
-
const getInstrumentSentiment = exports.getInstrumentSentiment = (0, _client.gql)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n query GetInstrumentSentiment(\n $name: String!\n ) {\n sentiment(\n name: $name\n ) {\n name\n sentiment {\n shortPercent\n longPercent\n }\n }\n }\n"])));
|
|
10
|
+
const getInstrumentSentiment = exports.getInstrumentSentiment = (0, _client.gql)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n query GetInstrumentSentiment(\n $name: String!\n $division: Division\n ) {\n sentiment(\n name: $name\n division: $division\n ) {\n name\n sentiment {\n shortPercent\n longPercent\n }\n }\n }\n"])));
|
|
11
11
|
//# sourceMappingURL=getInstrumentSentiment.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getInstrumentSentiment.js","names":["_client","require","_templateObject","_taggedTemplateLiteral","strings","raw","slice","Object","freeze","defineProperties","value","getInstrumentSentiment","exports","gql"],"sources":["../../../src/gql/getInstrumentSentiment.ts"],"sourcesContent":["import { gql } from '@apollo/client';\n\nconst getInstrumentSentiment = gql`\n query GetInstrumentSentiment(\n $name: String!\n ) {\n sentiment(\n name: $name\n ) {\n name\n sentiment {\n shortPercent\n longPercent\n }\n }\n }\n`;\n\nexport { getInstrumentSentiment };\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAAqC,IAAAC,eAAA;AAAA,SAAAC,uBAAAC,OAAA,EAAAC,GAAA,SAAAA,GAAA,IAAAA,GAAA,GAAAD,OAAA,CAAAE,KAAA,cAAAC,MAAA,CAAAC,MAAA,CAAAD,MAAA,CAAAE,gBAAA,CAAAL,OAAA,IAAAC,GAAA,IAAAK,KAAA,EAAAH,MAAA,CAAAC,MAAA,CAAAH,GAAA;AAErC,MAAMM,sBAAsB,GAAAC,OAAA,CAAAD,sBAAA,OAAGE,WAAG,EAAAX,eAAA,KAAAA,eAAA,GAAAC,sBAAA,
|
|
1
|
+
{"version":3,"file":"getInstrumentSentiment.js","names":["_client","require","_templateObject","_taggedTemplateLiteral","strings","raw","slice","Object","freeze","defineProperties","value","getInstrumentSentiment","exports","gql"],"sources":["../../../src/gql/getInstrumentSentiment.ts"],"sourcesContent":["import { gql } from '@apollo/client';\n\nconst getInstrumentSentiment = gql`\n query GetInstrumentSentiment(\n $name: String!\n $division: Division\n ) {\n sentiment(\n name: $name\n division: $division\n ) {\n name\n sentiment {\n shortPercent\n longPercent\n }\n }\n }\n`;\n\nexport { getInstrumentSentiment };\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAAqC,IAAAC,eAAA;AAAA,SAAAC,uBAAAC,OAAA,EAAAC,GAAA,SAAAA,GAAA,IAAAA,GAAA,GAAAD,OAAA,CAAAE,KAAA,cAAAC,MAAA,CAAAC,MAAA,CAAAD,MAAA,CAAAE,gBAAA,CAAAL,OAAA,IAAAC,GAAA,IAAAK,KAAA,EAAAH,MAAA,CAAAC,MAAA,CAAAH,GAAA;AAErC,MAAMM,sBAAsB,GAAAC,OAAA,CAAAD,sBAAA,OAAGE,WAAG,EAAAX,eAAA,KAAAA,eAAA,GAAAC,sBAAA,qQAgBjC"}
|
|
@@ -7,5 +7,5 @@ exports.getSentimentList = void 0;
|
|
|
7
7
|
var _client = require("@apollo/client");
|
|
8
8
|
var _templateObject;
|
|
9
9
|
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
|
10
|
-
const getSentimentList = exports.getSentimentList = (0, _client.gql)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n query GetSentimentList {\n sentimentList {\n name\n sentiment {\n shortPercent\n longPercent\n }\n }\n }\n"])));
|
|
10
|
+
const getSentimentList = exports.getSentimentList = (0, _client.gql)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n query GetSentimentList (\n $division: Division\n ) {\n sentimentList (\n division: $division\n ) {\n name\n sentiment {\n shortPercent\n longPercent\n }\n }\n }\n"])));
|
|
11
11
|
//# sourceMappingURL=getSentimentList.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getSentimentList.js","names":["_client","require","_templateObject","_taggedTemplateLiteral","strings","raw","slice","Object","freeze","defineProperties","value","getSentimentList","exports","gql"],"sources":["../../../src/gql/getSentimentList.ts"],"sourcesContent":["import { gql } from '@apollo/client';\n\nconst getSentimentList = gql`\n query GetSentimentList {\n sentimentList {\n name\n sentiment {\n shortPercent\n longPercent\n }\n }\n }\n`;\n\nexport { getSentimentList };\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAAqC,IAAAC,eAAA;AAAA,SAAAC,uBAAAC,OAAA,EAAAC,GAAA,SAAAA,GAAA,IAAAA,GAAA,GAAAD,OAAA,CAAAE,KAAA,cAAAC,MAAA,CAAAC,MAAA,CAAAD,MAAA,CAAAE,gBAAA,CAAAL,OAAA,IAAAC,GAAA,IAAAK,KAAA,EAAAH,MAAA,CAAAC,MAAA,CAAAH,GAAA;AAErC,MAAMM,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,OAAGE,WAAG,EAAAX,eAAA,KAAAA,eAAA,GAAAC,sBAAA,
|
|
1
|
+
{"version":3,"file":"getSentimentList.js","names":["_client","require","_templateObject","_taggedTemplateLiteral","strings","raw","slice","Object","freeze","defineProperties","value","getSentimentList","exports","gql"],"sources":["../../../src/gql/getSentimentList.ts"],"sourcesContent":["import { gql } from '@apollo/client';\n\nconst getSentimentList = gql`\n query GetSentimentList (\n $division: Division\n ) {\n sentimentList (\n division: $division\n ) {\n name\n sentiment {\n shortPercent\n longPercent\n }\n }\n }\n`;\n\nexport { getSentimentList };\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAAqC,IAAAC,eAAA;AAAA,SAAAC,uBAAAC,OAAA,EAAAC,GAAA,SAAAA,GAAA,IAAAA,GAAA,GAAAD,OAAA,CAAAE,KAAA,cAAAC,MAAA,CAAAC,MAAA,CAAAD,MAAA,CAAAE,gBAAA,CAAAL,OAAA,IAAAC,GAAA,IAAAK,KAAA,EAAAH,MAAA,CAAAC,MAAA,CAAAH,GAAA;AAErC,MAAMM,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,OAAGE,WAAG,EAAAX,eAAA,KAAAA,eAAA,GAAAC,sBAAA,8NAc3B"}
|
|
@@ -5,6 +5,7 @@ import { Tool } from './Tool';
|
|
|
5
5
|
const SentimentWidget = _ref => {
|
|
6
6
|
let {
|
|
7
7
|
graphqlUrl,
|
|
8
|
+
division,
|
|
8
9
|
instrument
|
|
9
10
|
} = _ref;
|
|
10
11
|
const client = new ApolloClient({
|
|
@@ -14,8 +15,11 @@ const SentimentWidget = _ref => {
|
|
|
14
15
|
return React.createElement(ApolloProvider, {
|
|
15
16
|
client: client
|
|
16
17
|
}, instrument ? React.createElement(Widget, {
|
|
18
|
+
division: division,
|
|
17
19
|
instrument: instrument
|
|
18
|
-
}) : React.createElement(Tool,
|
|
20
|
+
}) : React.createElement(Tool, {
|
|
21
|
+
division: division
|
|
22
|
+
}));
|
|
19
23
|
};
|
|
20
24
|
export { SentimentWidget };
|
|
21
25
|
//# sourceMappingURL=SentimentWidget.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SentimentWidget.js","names":["React","ApolloClient","InMemoryCache","ApolloProvider","Widget","Tool","SentimentWidget","_ref","graphqlUrl","instrument","client","uri","cache","createElement"],"sources":["../../../src/SentimentWidget/SentimentWidget.tsx"],"sourcesContent":["import React from 'react';\nimport { ApolloClient, InMemoryCache, ApolloProvider } from '@apollo/client';\nimport { Widget } from './Widget';\nimport { Tool } from './Tool';\nimport { SentimentConfig } from './types';\n\nconst SentimentWidget = ({ graphqlUrl, instrument }: SentimentConfig) => {\n const client = new ApolloClient({\n uri: graphqlUrl,\n cache: new InMemoryCache(),\n });\n\n return (\n <ApolloProvider client={client}>\n {instrument ? (\n <Widget instrument={instrument} />\n ) : (\n <Tool />\n )}\n </ApolloProvider>\n );\n};\n\nexport { SentimentWidget };\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,YAAY,EAAEC,aAAa,EAAEC,cAAc,QAAQ,gBAAgB;AAC5E,SAASC,MAAM,QAAQ,UAAU;AACjC,SAASC,IAAI,QAAQ,QAAQ;AAG7B,MAAMC,eAAe,GAAGC,IAAA,
|
|
1
|
+
{"version":3,"file":"SentimentWidget.js","names":["React","ApolloClient","InMemoryCache","ApolloProvider","Widget","Tool","SentimentWidget","_ref","graphqlUrl","division","instrument","client","uri","cache","createElement"],"sources":["../../../src/SentimentWidget/SentimentWidget.tsx"],"sourcesContent":["import React from 'react';\nimport { ApolloClient, InMemoryCache, ApolloProvider } from '@apollo/client';\nimport { Widget } from './Widget';\nimport { Tool } from './Tool';\nimport { SentimentConfig } from './types';\n\nconst SentimentWidget = ({ graphqlUrl, division, instrument }: SentimentConfig) => {\n const client = new ApolloClient({\n uri: graphqlUrl,\n cache: new InMemoryCache(),\n });\n\n return (\n <ApolloProvider client={client}>\n {instrument ? (\n <Widget division={division} instrument={instrument} />\n ) : (\n <Tool division={division} />\n )}\n </ApolloProvider>\n );\n};\n\nexport { SentimentWidget };\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,YAAY,EAAEC,aAAa,EAAEC,cAAc,QAAQ,gBAAgB;AAC5E,SAASC,MAAM,QAAQ,UAAU;AACjC,SAASC,IAAI,QAAQ,QAAQ;AAG7B,MAAMC,eAAe,GAAGC,IAAA,IAA2D;EAAA,IAA1D;IAAEC,UAAU;IAAEC,QAAQ;IAAEC;EAA4B,CAAC,GAAAH,IAAA;EAC5E,MAAMI,MAAM,GAAG,IAAIV,YAAY,CAAC;IAC9BW,GAAG,EAAEJ,UAAU;IACfK,KAAK,EAAE,IAAIX,aAAa,CAAC;EAC3B,CAAC,CAAC;EAEF,OACEF,KAAA,CAAAc,aAAA,CAACX,cAAc;IAACQ,MAAM,EAAEA;EAAO,GAC5BD,UAAU,GACTV,KAAA,CAAAc,aAAA,CAACV,MAAM;IAACK,QAAQ,EAAEA,QAAS;IAACC,UAAU,EAAEA;EAAW,CAAE,CAAC,GAEtDV,KAAA,CAAAc,aAAA,CAACT,IAAI;IAACI,QAAQ,EAAEA;EAAS,CAAE,CAEf,CAAC;AAErB,CAAC;AAED,SAASH,eAAe"}
|
|
@@ -5,14 +5,21 @@ import { getSentimentList } from '../gql/getSentimentList';
|
|
|
5
5
|
import { SentimentSort } from './types';
|
|
6
6
|
import { sortData } from './utils';
|
|
7
7
|
import { SelectedArrow, SortSwitch } from './components/SortSwitch';
|
|
8
|
-
const Tool =
|
|
8
|
+
const Tool = _ref => {
|
|
9
|
+
let {
|
|
10
|
+
division
|
|
11
|
+
} = _ref;
|
|
9
12
|
const [sort, setSort] = useState(SentimentSort.Bullish);
|
|
10
13
|
const [sortedData, setSortedData] = useState(new Array(20).fill({}));
|
|
11
14
|
const {
|
|
12
15
|
loading,
|
|
13
16
|
data,
|
|
14
17
|
error
|
|
15
|
-
} = useQuery(getSentimentList
|
|
18
|
+
} = useQuery(getSentimentList, {
|
|
19
|
+
variables: {
|
|
20
|
+
division
|
|
21
|
+
}
|
|
22
|
+
});
|
|
16
23
|
useEffect(() => {
|
|
17
24
|
if (data) {
|
|
18
25
|
setSortedData(sortData(data.sentimentList, sort));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tool.js","names":["React","useEffect","useState","Sentiment","SentimentHeight","Loader","LoaderSize","ChartError","useQuery","getSentimentList","SentimentSort","sortData","SelectedArrow","SortSwitch","Tool","sort","setSort","Bullish","sortedData","setSortedData","Array","fill","loading","data","error","sentimentList","createElement","className","Fragment","disabled","selected","UP","DOWN","onClickButtonDown","Bearish","onClickButtonUp","map","item","index","key","name","size","md","isLoading","height","sentiment"],"sources":["../../../src/SentimentWidget/Tool.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport {\n Sentiment, SentimentHeight, Loader, LoaderSize, ChartError,\n} from '@oanda/labs-widget-common';\nimport { useQuery } from '@apollo/client';\nimport { getSentimentList } from '../gql/getSentimentList';\nimport {
|
|
1
|
+
{"version":3,"file":"Tool.js","names":["React","useEffect","useState","Sentiment","SentimentHeight","Loader","LoaderSize","ChartError","useQuery","getSentimentList","SentimentSort","sortData","SelectedArrow","SortSwitch","Tool","_ref","division","sort","setSort","Bullish","sortedData","setSortedData","Array","fill","loading","data","error","variables","sentimentList","createElement","className","Fragment","disabled","selected","UP","DOWN","onClickButtonDown","Bearish","onClickButtonUp","map","item","index","key","name","size","md","isLoading","height","sentiment"],"sources":["../../../src/SentimentWidget/Tool.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport {\n Sentiment, SentimentHeight, Loader, LoaderSize, ChartError,\n} from '@oanda/labs-widget-common';\nimport { useQuery } from '@apollo/client';\nimport { getSentimentList } from '../gql/getSentimentList';\nimport {\n SentimentListResponse, SentimentSort, SentimentListData, SentimentToolConfig,\n} from './types';\nimport { sortData } from './utils';\nimport { SelectedArrow, SortSwitch } from './components/SortSwitch';\n\nconst Tool = ({ division }: SentimentToolConfig) => {\n const [sort, setSort] = useState(SentimentSort.Bullish);\n const [sortedData, setSortedData] = useState<SentimentListData[]>(new Array(20).fill({}));\n const { loading, data, error } = useQuery<SentimentListResponse>(getSentimentList, {\n variables: {\n division,\n },\n });\n\n useEffect(() => {\n if (data) {\n setSortedData(sortData(data.sentimentList, sort));\n }\n }, [data, sort]);\n\n return (\n <div data-testid=\"sentiment-tool\" className=\"text-sm text-black\">\n {error ? (\n <div className=\"flex h-[200px] items-center justify-center border border-solid border-grey p-2\">\n <ChartError />\n </div>\n ) : (\n <>\n <div className=\"flex justify-end pb-5\">\n <SortSwitch\n disabled={loading}\n selected={sort === SentimentSort.Bullish ? SelectedArrow.UP : SelectedArrow.DOWN}\n onClickButtonDown={() => setSort(SentimentSort.Bearish)}\n onClickButtonUp={() => setSort(SentimentSort.Bullish)}\n />\n </div>\n <div className=\"flex flex-col border border-solid border-grey p-2\">\n {sortedData.map((item, index) => (\n <div className=\"flex h-8 w-full items-center\" key={item.name || index}>\n <div className=\"w-[120px] shrink-0\">\n {loading ? (\n <Loader size={LoaderSize.md} />\n ) : (\n <p className=\"truncate font-sans font-bold\">{item.name || '\\u2014'}</p>\n )}\n </div>\n <Sentiment\n isLoading={loading}\n height={SentimentHeight.md}\n sentiment={item.sentiment}\n />\n </div>\n ))}\n </div>\n </>\n )}\n </div>\n );\n};\n\nexport { Tool };\n"],"mappings":"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"}
|
|
@@ -4,7 +4,8 @@ import { useQuery } from '@apollo/client';
|
|
|
4
4
|
import { getInstrumentSentiment } from '../gql/getInstrumentSentiment';
|
|
5
5
|
const Widget = _ref => {
|
|
6
6
|
let {
|
|
7
|
-
instrument
|
|
7
|
+
instrument,
|
|
8
|
+
division
|
|
8
9
|
} = _ref;
|
|
9
10
|
const {
|
|
10
11
|
loading,
|
|
@@ -12,7 +13,8 @@ const Widget = _ref => {
|
|
|
12
13
|
error
|
|
13
14
|
} = useQuery(getInstrumentSentiment, {
|
|
14
15
|
variables: {
|
|
15
|
-
name: instrument
|
|
16
|
+
name: instrument,
|
|
17
|
+
division
|
|
16
18
|
}
|
|
17
19
|
});
|
|
18
20
|
const {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Widget.js","names":["React","Sentiment","SentimentHeight","Spinner","Error","useQuery","getInstrumentSentiment","Widget","_ref","instrument","loading","data","error","variables","name","sentiment","isError","shortPercent","longPercent","undefined","createElement","className","Fragment","height","md"],"sources":["../../../src/SentimentWidget/Widget.tsx"],"sourcesContent":["import React from 'react';\nimport {\n Sentiment, SentimentHeight, Spinner, Error,\n} from '@oanda/labs-widget-common';\nimport { useQuery } from '@apollo/client';\nimport { getInstrumentSentiment } from '../gql/getInstrumentSentiment';\n\nconst Widget = ({ instrument }:
|
|
1
|
+
{"version":3,"file":"Widget.js","names":["React","Sentiment","SentimentHeight","Spinner","Error","useQuery","getInstrumentSentiment","Widget","_ref","instrument","division","loading","data","error","variables","name","sentiment","isError","shortPercent","longPercent","undefined","createElement","className","Fragment","height","md"],"sources":["../../../src/SentimentWidget/Widget.tsx"],"sourcesContent":["import React from 'react';\nimport {\n Sentiment, SentimentHeight, Spinner, Error,\n} from '@oanda/labs-widget-common';\nimport { useQuery } from '@apollo/client';\nimport { getInstrumentSentiment } from '../gql/getInstrumentSentiment';\nimport { SentimentWidgetConfig } from './types';\n\nconst Widget = ({ instrument, division }: SentimentWidgetConfig) => {\n const { loading, data, error } = useQuery(getInstrumentSentiment, {\n variables: {\n name: instrument,\n division,\n },\n });\n\n const { sentiment } = data?.sentiment[0] || {};\n const isError = error\n || (sentiment?.shortPercent === 0 && sentiment?.longPercent === 0)\n || sentiment?.shortPercent === undefined\n || sentiment?.longPercent === undefined;\n\n return (\n <div data-testid=\"sentiment-widget\" className=\"flex items-center justify-between border border-solid border-grey p-4 text-sm text-black\">\n {!loading\n ? (\n <>\n <p className=\"mr-12 font-sans font-bold\">{instrument}</p>\n {!isError && <Sentiment height={SentimentHeight.md} sentiment={sentiment} />}\n {isError && <Error />}\n </>\n ) : <Spinner />}\n </div>\n );\n};\n\nexport { Widget };\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SACEC,SAAS,EAAEC,eAAe,EAAEC,OAAO,EAAEC,KAAK,QACrC,2BAA2B;AAClC,SAASC,QAAQ,QAAQ,gBAAgB;AACzC,SAASC,sBAAsB,QAAQ,+BAA+B;AAGtE,MAAMC,MAAM,GAAGC,IAAA,IAAqD;EAAA,IAApD;IAAEC,UAAU;IAAEC;EAAgC,CAAC,GAAAF,IAAA;EAC7D,MAAM;IAAEG,OAAO;IAAEC,IAAI;IAAEC;EAAM,CAAC,GAAGR,QAAQ,CAACC,sBAAsB,EAAE;IAChEQ,SAAS,EAAE;MACTC,IAAI,EAAEN,UAAU;MAChBC;IACF;EACF,CAAC,CAAC;EAEF,MAAM;IAAEM;EAAU,CAAC,GAAG,CAAAJ,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEI,SAAS,CAAC,CAAC,CAAC,KAAI,CAAC,CAAC;EAC9C,MAAMC,OAAO,GAAGJ,KAAK,IACf,CAAAG,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEE,YAAY,MAAK,CAAC,IAAI,CAAAF,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEG,WAAW,MAAK,CAAE,IAC/D,CAAAH,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEE,YAAY,MAAKE,SAAS,IACrC,CAAAJ,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEG,WAAW,MAAKC,SAAS;EAEzC,OACEpB,KAAA,CAAAqB,aAAA;IAAK,eAAY,kBAAkB;IAACC,SAAS,EAAC;EAA0F,GACrI,CAACX,OAAO,GAELX,KAAA,CAAAqB,aAAA,CAAArB,KAAA,CAAAuB,QAAA,QACEvB,KAAA,CAAAqB,aAAA;IAAGC,SAAS,EAAC;EAA2B,GAAEb,UAAc,CAAC,EACxD,CAACQ,OAAO,IAAIjB,KAAA,CAAAqB,aAAA,CAACpB,SAAS;IAACuB,MAAM,EAAEtB,eAAe,CAACuB,EAAG;IAACT,SAAS,EAAEA;EAAU,CAAE,CAAC,EAC3EC,OAAO,IAAIjB,KAAA,CAAAqB,aAAA,CAACjB,KAAK,MAAE,CACpB,CAAC,GACDJ,KAAA,CAAAqB,aAAA,CAAClB,OAAO,MAAE,CACb,CAAC;AAEV,CAAC;AAED,SAASI,MAAM"}
|
|
@@ -3,10 +3,12 @@ import { render } from 'react-dom';
|
|
|
3
3
|
import { SentimentWidget } from './SentimentWidget';
|
|
4
4
|
const {
|
|
5
5
|
graphqlUrl,
|
|
6
|
+
division,
|
|
6
7
|
instrument
|
|
7
8
|
} = window.sentimentWidgetConfig;
|
|
8
9
|
render(React.createElement(SentimentWidget, {
|
|
9
10
|
graphqlUrl: graphqlUrl,
|
|
11
|
+
division: division,
|
|
10
12
|
instrument: instrument
|
|
11
13
|
}), document.getElementById('sentiment'));
|
|
12
14
|
//# sourceMappingURL=render.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","names":["React","render","SentimentWidget","graphqlUrl","instrument","window","sentimentWidgetConfig","createElement","document","getElementById"],"sources":["../../../src/SentimentWidget/render.tsx"],"sourcesContent":["import React from 'react';\nimport { render } from 'react-dom';\nimport { SentimentWidget } from './SentimentWidget';\nimport {
|
|
1
|
+
{"version":3,"file":"render.js","names":["React","render","SentimentWidget","graphqlUrl","division","instrument","window","sentimentWidgetConfig","createElement","document","getElementById"],"sources":["../../../src/SentimentWidget/render.tsx"],"sourcesContent":["import React from 'react';\nimport { render } from 'react-dom';\nimport { SentimentWidget } from './SentimentWidget';\nimport { SentimentConfig } from './types';\n\ndeclare global {\n interface Window {\n sentimentWidgetConfig: SentimentConfig;\n }\n}\n\nconst {\n graphqlUrl,\n division,\n instrument,\n} = window.sentimentWidgetConfig;\n\nrender(\n <SentimentWidget\n graphqlUrl={graphqlUrl}\n division={division}\n instrument={instrument}\n />,\n document.getElementById('sentiment'),\n);\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,MAAM,QAAQ,WAAW;AAClC,SAASC,eAAe,QAAQ,mBAAmB;AASnD,MAAM;EACJC,UAAU;EACVC,QAAQ;EACRC;AACF,CAAC,GAAGC,MAAM,CAACC,qBAAqB;AAEhCN,MAAM,CACJD,KAAA,CAAAQ,aAAA,CAACN,eAAe;EACdC,UAAU,EAAEA,UAAW;EACvBC,QAAQ,EAAEA,QAAS;EACnBC,UAAU,EAAEA;AAAW,CACxB,CAAC,EACFI,QAAQ,CAACC,cAAc,CAAC,WAAW,CACrC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":["SentimentSort"],"sources":["../../../src/SentimentWidget/types.ts"],"sourcesContent":["export interface SentimentConfig {\n graphqlUrl: string;\n instrument?: string;\n}\n\nexport interface SentimentWidgetConfig {\n
|
|
1
|
+
{"version":3,"file":"types.js","names":["SentimentSort"],"sources":["../../../src/SentimentWidget/types.ts"],"sourcesContent":["export interface SentimentConfig {\n graphqlUrl: string;\n division: string;\n instrument?: string;\n}\n\nexport interface SentimentWidgetConfig {\n division: string;\n instrument: string;\n}\n\nexport interface SentimentToolConfig {\n division: string;\n}\n\nexport interface SentimentListData {\n name: string;\n sentiment: {\n shortPercent: number;\n longPercent: number;\n }\n}\n\nexport interface SentimentListResponse {\n sentimentList: SentimentListData[]\n}\n\nexport enum SentimentSort {\n Bearish = 'BEARISH',\n Bullish = 'BULLISH',\n}\n"],"mappings":"AA2BA,WAAYA,aAAa,aAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAA,OAAbA,aAAa;AAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
var _templateObject;
|
|
2
2
|
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
|
3
3
|
import { gql } from '@apollo/client';
|
|
4
|
-
const getInstrumentSentiment = gql(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n query GetInstrumentSentiment(\n $name: String!\n ) {\n sentiment(\n name: $name\n ) {\n name\n sentiment {\n shortPercent\n longPercent\n }\n }\n }\n"])));
|
|
4
|
+
const getInstrumentSentiment = gql(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n query GetInstrumentSentiment(\n $name: String!\n $division: Division\n ) {\n sentiment(\n name: $name\n division: $division\n ) {\n name\n sentiment {\n shortPercent\n longPercent\n }\n }\n }\n"])));
|
|
5
5
|
export { getInstrumentSentiment };
|
|
6
6
|
//# sourceMappingURL=getInstrumentSentiment.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getInstrumentSentiment.js","names":["gql","getInstrumentSentiment","_templateObject","_taggedTemplateLiteral"],"sources":["../../../src/gql/getInstrumentSentiment.ts"],"sourcesContent":["import { gql } from '@apollo/client';\n\nconst getInstrumentSentiment = gql`\n query GetInstrumentSentiment(\n $name: String!\n ) {\n sentiment(\n name: $name\n ) {\n name\n sentiment {\n shortPercent\n longPercent\n }\n }\n }\n`;\n\nexport { getInstrumentSentiment };\n"],"mappings":";;AAAA,SAASA,GAAG,QAAQ,gBAAgB;AAEpC,MAAMC,sBAAsB,GAAGD,GAAG,CAAAE,eAAA,KAAAA,eAAA,GAAAC,sBAAA,
|
|
1
|
+
{"version":3,"file":"getInstrumentSentiment.js","names":["gql","getInstrumentSentiment","_templateObject","_taggedTemplateLiteral"],"sources":["../../../src/gql/getInstrumentSentiment.ts"],"sourcesContent":["import { gql } from '@apollo/client';\n\nconst getInstrumentSentiment = gql`\n query GetInstrumentSentiment(\n $name: String!\n $division: Division\n ) {\n sentiment(\n name: $name\n division: $division\n ) {\n name\n sentiment {\n shortPercent\n longPercent\n }\n }\n }\n`;\n\nexport { getInstrumentSentiment };\n"],"mappings":";;AAAA,SAASA,GAAG,QAAQ,gBAAgB;AAEpC,MAAMC,sBAAsB,GAAGD,GAAG,CAAAE,eAAA,KAAAA,eAAA,GAAAC,sBAAA,qQAgBjC;AAED,SAASF,sBAAsB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
var _templateObject;
|
|
2
2
|
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
|
3
3
|
import { gql } from '@apollo/client';
|
|
4
|
-
const getSentimentList = gql(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n query GetSentimentList {\n sentimentList {\n name\n sentiment {\n shortPercent\n longPercent\n }\n }\n }\n"])));
|
|
4
|
+
const getSentimentList = gql(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n query GetSentimentList (\n $division: Division\n ) {\n sentimentList (\n division: $division\n ) {\n name\n sentiment {\n shortPercent\n longPercent\n }\n }\n }\n"])));
|
|
5
5
|
export { getSentimentList };
|
|
6
6
|
//# sourceMappingURL=getSentimentList.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getSentimentList.js","names":["gql","getSentimentList","_templateObject","_taggedTemplateLiteral"],"sources":["../../../src/gql/getSentimentList.ts"],"sourcesContent":["import { gql } from '@apollo/client';\n\nconst getSentimentList = gql`\n query GetSentimentList {\n sentimentList {\n name\n sentiment {\n shortPercent\n longPercent\n }\n }\n }\n`;\n\nexport { getSentimentList };\n"],"mappings":";;AAAA,SAASA,GAAG,QAAQ,gBAAgB;AAEpC,MAAMC,gBAAgB,GAAGD,GAAG,CAAAE,eAAA,KAAAA,eAAA,GAAAC,sBAAA,
|
|
1
|
+
{"version":3,"file":"getSentimentList.js","names":["gql","getSentimentList","_templateObject","_taggedTemplateLiteral"],"sources":["../../../src/gql/getSentimentList.ts"],"sourcesContent":["import { gql } from '@apollo/client';\n\nconst getSentimentList = gql`\n query GetSentimentList (\n $division: Division\n ) {\n sentimentList (\n division: $division\n ) {\n name\n sentiment {\n shortPercent\n longPercent\n }\n }\n }\n`;\n\nexport { getSentimentList };\n"],"mappings":";;AAAA,SAASA,GAAG,QAAQ,gBAAgB;AAEpC,MAAMC,gBAAgB,GAAGD,GAAG,CAAAE,eAAA,KAAAA,eAAA,GAAAC,sBAAA,8NAc3B;AAED,SAASF,gBAAgB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { SentimentConfig } from './types';
|
|
3
|
-
declare const SentimentWidget: ({ graphqlUrl, instrument }: SentimentConfig) => JSX.Element;
|
|
3
|
+
declare const SentimentWidget: ({ graphqlUrl, division, instrument }: SentimentConfig) => JSX.Element;
|
|
4
4
|
export { SentimentWidget };
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
}) => JSX.Element;
|
|
2
|
+
import { SentimentWidgetConfig } from './types';
|
|
3
|
+
declare const Widget: ({ instrument, division }: SentimentWidgetConfig) => JSX.Element;
|
|
5
4
|
export { Widget };
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
export interface SentimentConfig {
|
|
2
2
|
graphqlUrl: string;
|
|
3
|
+
division: string;
|
|
3
4
|
instrument?: string;
|
|
4
5
|
}
|
|
5
6
|
export interface SentimentWidgetConfig {
|
|
6
|
-
|
|
7
|
+
division: string;
|
|
7
8
|
instrument: string;
|
|
8
9
|
}
|
|
9
10
|
export interface SentimentToolConfig {
|
|
10
|
-
|
|
11
|
+
division: string;
|
|
11
12
|
}
|
|
12
13
|
export interface SentimentListData {
|
|
13
14
|
name: string;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oanda/labs-sentiment-widget",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.10",
|
|
4
4
|
"description": "Labs Sentiment Widget",
|
|
5
5
|
"main": "dist/main/index.js",
|
|
6
6
|
"module": "dist/module/index.js",
|
|
@@ -11,9 +11,9 @@
|
|
|
11
11
|
"license": "UNLICENSED",
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@apollo/client": "3.7.17",
|
|
14
|
-
"@oanda/labs-widget-common": "^1.0.
|
|
14
|
+
"@oanda/labs-widget-common": "^1.0.10",
|
|
15
15
|
"classnames": "2.3.2",
|
|
16
16
|
"graphql": "16.7.1"
|
|
17
17
|
},
|
|
18
|
-
"gitHead": "
|
|
18
|
+
"gitHead": "c704ac839422a61d112263f14fb4eef33d898bea"
|
|
19
19
|
}
|
|
@@ -4,7 +4,7 @@ import { Widget } from './Widget';
|
|
|
4
4
|
import { Tool } from './Tool';
|
|
5
5
|
import { SentimentConfig } from './types';
|
|
6
6
|
|
|
7
|
-
const SentimentWidget = ({ graphqlUrl, instrument }: SentimentConfig) => {
|
|
7
|
+
const SentimentWidget = ({ graphqlUrl, division, instrument }: SentimentConfig) => {
|
|
8
8
|
const client = new ApolloClient({
|
|
9
9
|
uri: graphqlUrl,
|
|
10
10
|
cache: new InMemoryCache(),
|
|
@@ -13,9 +13,9 @@ const SentimentWidget = ({ graphqlUrl, instrument }: SentimentConfig) => {
|
|
|
13
13
|
return (
|
|
14
14
|
<ApolloProvider client={client}>
|
|
15
15
|
{instrument ? (
|
|
16
|
-
<Widget instrument={instrument} />
|
|
16
|
+
<Widget division={division} instrument={instrument} />
|
|
17
17
|
) : (
|
|
18
|
-
<Tool />
|
|
18
|
+
<Tool division={division} />
|
|
19
19
|
)}
|
|
20
20
|
</ApolloProvider>
|
|
21
21
|
);
|
|
@@ -4,14 +4,20 @@ import {
|
|
|
4
4
|
} from '@oanda/labs-widget-common';
|
|
5
5
|
import { useQuery } from '@apollo/client';
|
|
6
6
|
import { getSentimentList } from '../gql/getSentimentList';
|
|
7
|
-
import {
|
|
7
|
+
import {
|
|
8
|
+
SentimentListResponse, SentimentSort, SentimentListData, SentimentToolConfig,
|
|
9
|
+
} from './types';
|
|
8
10
|
import { sortData } from './utils';
|
|
9
11
|
import { SelectedArrow, SortSwitch } from './components/SortSwitch';
|
|
10
12
|
|
|
11
|
-
const Tool = () => {
|
|
13
|
+
const Tool = ({ division }: SentimentToolConfig) => {
|
|
12
14
|
const [sort, setSort] = useState(SentimentSort.Bullish);
|
|
13
15
|
const [sortedData, setSortedData] = useState<SentimentListData[]>(new Array(20).fill({}));
|
|
14
|
-
const { loading, data, error } = useQuery<SentimentListResponse>(getSentimentList
|
|
16
|
+
const { loading, data, error } = useQuery<SentimentListResponse>(getSentimentList, {
|
|
17
|
+
variables: {
|
|
18
|
+
division,
|
|
19
|
+
},
|
|
20
|
+
});
|
|
15
21
|
|
|
16
22
|
useEffect(() => {
|
|
17
23
|
if (data) {
|
|
@@ -4,11 +4,13 @@ import {
|
|
|
4
4
|
} from '@oanda/labs-widget-common';
|
|
5
5
|
import { useQuery } from '@apollo/client';
|
|
6
6
|
import { getInstrumentSentiment } from '../gql/getInstrumentSentiment';
|
|
7
|
+
import { SentimentWidgetConfig } from './types';
|
|
7
8
|
|
|
8
|
-
const Widget = ({ instrument }:
|
|
9
|
+
const Widget = ({ instrument, division }: SentimentWidgetConfig) => {
|
|
9
10
|
const { loading, data, error } = useQuery(getInstrumentSentiment, {
|
|
10
11
|
variables: {
|
|
11
12
|
name: instrument,
|
|
13
|
+
division,
|
|
12
14
|
},
|
|
13
15
|
});
|
|
14
16
|
|
|
@@ -1,22 +1,24 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { render } from 'react-dom';
|
|
3
3
|
import { SentimentWidget } from './SentimentWidget';
|
|
4
|
-
import {
|
|
4
|
+
import { SentimentConfig } from './types';
|
|
5
5
|
|
|
6
6
|
declare global {
|
|
7
7
|
interface Window {
|
|
8
|
-
sentimentWidgetConfig:
|
|
8
|
+
sentimentWidgetConfig: SentimentConfig;
|
|
9
9
|
}
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
const {
|
|
13
13
|
graphqlUrl,
|
|
14
|
+
division,
|
|
14
15
|
instrument,
|
|
15
16
|
} = window.sentimentWidgetConfig;
|
|
16
17
|
|
|
17
18
|
render(
|
|
18
19
|
<SentimentWidget
|
|
19
20
|
graphqlUrl={graphqlUrl}
|
|
21
|
+
division={division}
|
|
20
22
|
instrument={instrument}
|
|
21
23
|
/>,
|
|
22
24
|
document.getElementById('sentiment'),
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
export interface SentimentConfig {
|
|
2
2
|
graphqlUrl: string;
|
|
3
|
+
division: string;
|
|
3
4
|
instrument?: string;
|
|
4
5
|
}
|
|
5
6
|
|
|
6
7
|
export interface SentimentWidgetConfig {
|
|
7
|
-
|
|
8
|
+
division: string;
|
|
8
9
|
instrument: string;
|
|
9
10
|
}
|
|
10
11
|
|
|
11
12
|
export interface SentimentToolConfig {
|
|
12
|
-
|
|
13
|
+
division: string;
|
|
13
14
|
}
|
|
14
15
|
|
|
15
16
|
export interface SentimentListData {
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import { gql } from '@apollo/client';
|
|
2
2
|
|
|
3
3
|
const getSentimentList = gql`
|
|
4
|
-
query GetSentimentList
|
|
5
|
-
|
|
4
|
+
query GetSentimentList (
|
|
5
|
+
$division: Division
|
|
6
|
+
) {
|
|
7
|
+
sentimentList (
|
|
8
|
+
division: $division
|
|
9
|
+
) {
|
|
6
10
|
name
|
|
7
11
|
sentiment {
|
|
8
12
|
shortPercent
|
package/test/Tool.test.tsx
CHANGED
|
@@ -11,6 +11,9 @@ const mocks = [
|
|
|
11
11
|
{
|
|
12
12
|
request: {
|
|
13
13
|
query: getSentimentList,
|
|
14
|
+
variables: {
|
|
15
|
+
division: 'OC',
|
|
16
|
+
},
|
|
14
17
|
},
|
|
15
18
|
result: {
|
|
16
19
|
data: {
|
|
@@ -45,7 +48,7 @@ describe('Tool component', () => {
|
|
|
45
48
|
it('should render tool component', async () => {
|
|
46
49
|
const { findByTestId, findAllByTestId } = render(
|
|
47
50
|
<MockedProvider mocks={mocks}>
|
|
48
|
-
<Tool />
|
|
51
|
+
<Tool division="OC" />
|
|
49
52
|
</MockedProvider>,
|
|
50
53
|
);
|
|
51
54
|
|
package/test/Widget.test.tsx
CHANGED
|
@@ -13,6 +13,7 @@ const mocks = [
|
|
|
13
13
|
query: getInstrumentSentiment,
|
|
14
14
|
variables: {
|
|
15
15
|
name: 'EUR/USD',
|
|
16
|
+
division: 'OC',
|
|
16
17
|
},
|
|
17
18
|
},
|
|
18
19
|
result: {
|
|
@@ -36,6 +37,7 @@ const zeroPercentMocks = [
|
|
|
36
37
|
query: getInstrumentSentiment,
|
|
37
38
|
variables: {
|
|
38
39
|
name: 'GBP/USD',
|
|
40
|
+
division: 'OC',
|
|
39
41
|
},
|
|
40
42
|
},
|
|
41
43
|
result: {
|
|
@@ -57,7 +59,7 @@ describe('Widget component', () => {
|
|
|
57
59
|
it('should render widget component', async () => {
|
|
58
60
|
const { findByTestId } = render(
|
|
59
61
|
<MockedProvider mocks={mocks}>
|
|
60
|
-
<Widget instrument="EUR/USD" />
|
|
62
|
+
<Widget division="OC" instrument="EUR/USD" />
|
|
61
63
|
</MockedProvider>,
|
|
62
64
|
);
|
|
63
65
|
|
|
@@ -67,7 +69,7 @@ describe('Widget component', () => {
|
|
|
67
69
|
it('should render error when both sentiment values are 0', async () => {
|
|
68
70
|
const { findByTestId } = render(
|
|
69
71
|
<MockedProvider mocks={zeroPercentMocks}>
|
|
70
|
-
<Widget instrument="GBP/USD" />
|
|
72
|
+
<Widget division="OC" instrument="GBP/USD" />
|
|
71
73
|
</MockedProvider>,
|
|
72
74
|
);
|
|
73
75
|
|