finsignal-feed-explore 2.18.1 → 2.19.0
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/dist/components/NewsSkeleton.css +125 -25
- package/dist/components/NewsSkeleton.d.ts.map +1 -1
- package/dist/components/NewsSkeleton.js +22 -8
- package/dist/components/NewsSkeleton.js.map +1 -1
- package/dist/constants/mock-news.d.ts.map +1 -1
- package/dist/constants/mock-news.js +35 -45
- package/dist/constants/mock-news.js.map +1 -1
- package/dist/snippets/NewsSnippet.css +137 -56
- package/dist/snippets/NewsSnippet.d.ts +8 -8
- package/dist/snippets/NewsSnippet.d.ts.map +1 -1
- package/dist/snippets/NewsSnippet.js +26 -29
- package/dist/snippets/NewsSnippet.js.map +1 -1
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -11,35 +11,36 @@
|
|
|
11
11
|
.news-skeleton-container {
|
|
12
12
|
display: flex;
|
|
13
13
|
flex-direction: column;
|
|
14
|
-
gap:
|
|
14
|
+
gap: 0;
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
.news-skeleton {
|
|
18
18
|
background: #ffffff;
|
|
19
|
-
border-radius:
|
|
20
|
-
padding:
|
|
19
|
+
border-radius: 0;
|
|
20
|
+
padding: 12px;
|
|
21
21
|
display: flex;
|
|
22
22
|
flex-direction: column;
|
|
23
23
|
gap: 12px;
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
/* Header */
|
|
26
|
+
/* Header: дата слева, категория справа */
|
|
27
27
|
.news-skeleton__header {
|
|
28
28
|
display: flex;
|
|
29
29
|
align-items: center;
|
|
30
30
|
justify-content: space-between;
|
|
31
|
+
padding: 4px;
|
|
31
32
|
}
|
|
32
33
|
|
|
33
|
-
.news-
|
|
34
|
-
width:
|
|
35
|
-
height:
|
|
34
|
+
.news-skeleton__timestamp {
|
|
35
|
+
width: 100px;
|
|
36
|
+
height: 14px;
|
|
36
37
|
background: #e5e7eb;
|
|
37
38
|
border-radius: 4px;
|
|
38
39
|
animation: skeleton-pulse 1.5s ease-in-out infinite;
|
|
39
40
|
}
|
|
40
41
|
|
|
41
|
-
.news-
|
|
42
|
-
width:
|
|
42
|
+
.news-skeleton__category {
|
|
43
|
+
width: 120px;
|
|
43
44
|
height: 14px;
|
|
44
45
|
background: #e5e7eb;
|
|
45
46
|
border-radius: 4px;
|
|
@@ -52,10 +53,11 @@
|
|
|
52
53
|
display: flex;
|
|
53
54
|
flex-direction: column;
|
|
54
55
|
gap: 8px;
|
|
56
|
+
padding: 0 4px;
|
|
55
57
|
}
|
|
56
58
|
|
|
57
59
|
.news-skeleton__title-line {
|
|
58
|
-
height:
|
|
60
|
+
height: 22px;
|
|
59
61
|
background: #e5e7eb;
|
|
60
62
|
border-radius: 4px;
|
|
61
63
|
animation: skeleton-pulse 1.5s ease-in-out infinite;
|
|
@@ -67,7 +69,34 @@
|
|
|
67
69
|
}
|
|
68
70
|
|
|
69
71
|
.news-skeleton__title-line--partial {
|
|
70
|
-
width:
|
|
72
|
+
width: 75%;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/* Source */
|
|
76
|
+
.news-skeleton__source {
|
|
77
|
+
display: flex;
|
|
78
|
+
align-items: center;
|
|
79
|
+
gap: 6px;
|
|
80
|
+
padding: 0 4px;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.news-skeleton__source-logo {
|
|
84
|
+
width: 16px;
|
|
85
|
+
height: 16px;
|
|
86
|
+
background: #e5e7eb;
|
|
87
|
+
border-radius: 10.67px;
|
|
88
|
+
flex-shrink: 0;
|
|
89
|
+
animation: skeleton-pulse 1.5s ease-in-out infinite;
|
|
90
|
+
animation-delay: 0.25s;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.news-skeleton__source-name {
|
|
94
|
+
width: 90px;
|
|
95
|
+
height: 14px;
|
|
96
|
+
background: #e5e7eb;
|
|
97
|
+
border-radius: 4px;
|
|
98
|
+
animation: skeleton-pulse 1.5s ease-in-out infinite;
|
|
99
|
+
animation-delay: 0.3s;
|
|
71
100
|
}
|
|
72
101
|
|
|
73
102
|
/* Content */
|
|
@@ -75,7 +104,7 @@
|
|
|
75
104
|
display: flex;
|
|
76
105
|
flex-direction: column;
|
|
77
106
|
gap: 6px;
|
|
78
|
-
|
|
107
|
+
padding: 0 4px;
|
|
79
108
|
}
|
|
80
109
|
|
|
81
110
|
.news-skeleton__content-line {
|
|
@@ -83,41 +112,112 @@
|
|
|
83
112
|
background: #e5e7eb;
|
|
84
113
|
border-radius: 4px;
|
|
85
114
|
animation: skeleton-pulse 1.5s ease-in-out infinite;
|
|
86
|
-
animation-delay: 0.
|
|
115
|
+
animation-delay: 0.35s;
|
|
87
116
|
}
|
|
88
117
|
|
|
89
118
|
.news-skeleton__content-line--short {
|
|
119
|
+
width: 65%;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/* AI Summary */
|
|
123
|
+
.news-skeleton__ai-summary {
|
|
124
|
+
display: flex;
|
|
125
|
+
align-items: flex-start;
|
|
126
|
+
gap: 8px;
|
|
127
|
+
padding: 8px;
|
|
128
|
+
background-color: rgba(120, 99, 246, 0.12);
|
|
129
|
+
border-radius: 4px;
|
|
130
|
+
margin: 0 4px;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
.news-skeleton__ai-icon {
|
|
134
|
+
width: 24px;
|
|
135
|
+
height: 24px;
|
|
136
|
+
background: #e5e7eb;
|
|
137
|
+
border-radius: 4px;
|
|
138
|
+
flex-shrink: 0;
|
|
139
|
+
animation: skeleton-pulse 1.5s ease-in-out infinite;
|
|
140
|
+
animation-delay: 0.4s;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
.news-skeleton__ai-text {
|
|
144
|
+
flex: 1;
|
|
145
|
+
display: flex;
|
|
146
|
+
flex-direction: column;
|
|
147
|
+
gap: 4px;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
.news-skeleton__ai-text-line {
|
|
151
|
+
height: 14px;
|
|
152
|
+
background: #e5e7eb;
|
|
153
|
+
border-radius: 4px;
|
|
154
|
+
animation: skeleton-pulse 1.5s ease-in-out infinite;
|
|
155
|
+
animation-delay: 0.45s;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
.news-skeleton__ai-text-line--short {
|
|
90
159
|
width: 60%;
|
|
91
160
|
}
|
|
92
161
|
|
|
93
|
-
/*
|
|
94
|
-
.news-
|
|
162
|
+
/* Stock Cards */
|
|
163
|
+
.news-skeleton__stocks {
|
|
164
|
+
display: flex;
|
|
165
|
+
flex-direction: column;
|
|
166
|
+
gap: 4px;
|
|
167
|
+
padding: 0 4px;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
.news-skeleton__stock-card {
|
|
95
171
|
display: flex;
|
|
96
172
|
align-items: center;
|
|
97
|
-
|
|
98
|
-
|
|
173
|
+
gap: 8px;
|
|
174
|
+
padding: 4px 8px 4px 4px;
|
|
175
|
+
background-color: rgba(4, 4, 5, 0.04);
|
|
176
|
+
border-radius: 4px;
|
|
99
177
|
}
|
|
100
178
|
|
|
101
|
-
.news-
|
|
102
|
-
width:
|
|
179
|
+
.news-skeleton__stock-logo {
|
|
180
|
+
width: 48px;
|
|
181
|
+
height: 48px;
|
|
182
|
+
background: #e5e7eb;
|
|
183
|
+
border-radius: 100px;
|
|
184
|
+
flex-shrink: 0;
|
|
185
|
+
animation: skeleton-pulse 1.5s ease-in-out infinite;
|
|
186
|
+
animation-delay: 0.5s;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
.news-skeleton__stock-text {
|
|
190
|
+
flex: 1;
|
|
103
191
|
height: 16px;
|
|
104
192
|
background: #e5e7eb;
|
|
105
193
|
border-radius: 4px;
|
|
106
194
|
animation: skeleton-pulse 1.5s ease-in-out infinite;
|
|
107
|
-
animation-delay: 0.
|
|
195
|
+
animation-delay: 0.55s;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
.news-skeleton__stock-change {
|
|
199
|
+
width: 80px;
|
|
200
|
+
height: 16px;
|
|
201
|
+
background: #e5e7eb;
|
|
202
|
+
border-radius: 4px;
|
|
203
|
+
animation: skeleton-pulse 1.5s ease-in-out infinite;
|
|
204
|
+
animation-delay: 0.6s;
|
|
108
205
|
}
|
|
109
206
|
|
|
207
|
+
/* Actions */
|
|
110
208
|
.news-skeleton__actions {
|
|
111
209
|
display: flex;
|
|
112
210
|
align-items: center;
|
|
113
|
-
|
|
211
|
+
justify-content: flex-end;
|
|
212
|
+
gap: 8px;
|
|
213
|
+
padding: 0 4px;
|
|
114
214
|
}
|
|
115
215
|
|
|
116
216
|
.news-skeleton__action-icon {
|
|
117
|
-
width:
|
|
118
|
-
height:
|
|
217
|
+
width: 16px;
|
|
218
|
+
height: 16px;
|
|
119
219
|
background: #e5e7eb;
|
|
120
|
-
border-radius:
|
|
220
|
+
border-radius: 4px;
|
|
121
221
|
animation: skeleton-pulse 1.5s ease-in-out infinite;
|
|
122
|
-
animation-delay: 0.
|
|
222
|
+
animation-delay: 0.65s;
|
|
123
223
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NewsSkeleton.d.ts","sourceRoot":"","sources":["../../src/components/NewsSkeleton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,oBAAoB,CAAC;AAE5B,MAAM,WAAW,iBAAiB;IAKhC,KAAK,CAAC,EAAE,MAAM,CAAC;IAKf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAOD,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,
|
|
1
|
+
{"version":3,"file":"NewsSkeleton.d.ts","sourceRoot":"","sources":["../../src/components/NewsSkeleton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,oBAAoB,CAAC;AAE5B,MAAM,WAAW,iBAAiB;IAKhC,KAAK,CAAC,EAAE,MAAM,CAAC;IAKf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAOD,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAiEpD,CAAC"}
|
|
@@ -3,20 +3,34 @@ import './NewsSkeleton.css';
|
|
|
3
3
|
export const NewsSkeleton = ({ count = 3, className = '' }) => {
|
|
4
4
|
return (React.createElement("div", { className: `news-skeleton-container ${className}` }, Array.from({ length: count }).map((_, index) => (React.createElement("div", { key: index, className: "news-skeleton" },
|
|
5
5
|
React.createElement("div", { className: "news-skeleton__header" },
|
|
6
|
-
React.createElement("div", { className: "news-
|
|
7
|
-
React.createElement("div", { className: "news-
|
|
6
|
+
React.createElement("div", { className: "news-skeleton__timestamp" }),
|
|
7
|
+
React.createElement("div", { className: "news-skeleton__category" })),
|
|
8
8
|
React.createElement("div", { className: "news-skeleton__title" },
|
|
9
9
|
React.createElement("div", { className: "news-skeleton__title-line news-skeleton__title-line--full" }),
|
|
10
10
|
React.createElement("div", { className: "news-skeleton__title-line news-skeleton__title-line--partial" })),
|
|
11
|
+
React.createElement("div", { className: "news-skeleton__source" },
|
|
12
|
+
React.createElement("div", { className: "news-skeleton__source-logo" }),
|
|
13
|
+
React.createElement("div", { className: "news-skeleton__source-name" })),
|
|
11
14
|
React.createElement("div", { className: "news-skeleton__content" },
|
|
12
15
|
React.createElement("div", { className: "news-skeleton__content-line" }),
|
|
13
16
|
React.createElement("div", { className: "news-skeleton__content-line" }),
|
|
14
17
|
React.createElement("div", { className: "news-skeleton__content-line news-skeleton__content-line--short" })),
|
|
15
|
-
React.createElement("div", { className: "news-
|
|
16
|
-
React.createElement("div", { className: "news-
|
|
17
|
-
React.createElement("div", { className: "news-
|
|
18
|
-
React.createElement("div", { className: "news-
|
|
19
|
-
React.createElement("div", { className: "news-
|
|
20
|
-
|
|
18
|
+
React.createElement("div", { className: "news-skeleton__ai-summary" },
|
|
19
|
+
React.createElement("div", { className: "news-skeleton__ai-icon" }),
|
|
20
|
+
React.createElement("div", { className: "news-skeleton__ai-text" },
|
|
21
|
+
React.createElement("div", { className: "news-skeleton__ai-text-line" }),
|
|
22
|
+
React.createElement("div", { className: "news-skeleton__ai-text-line news-skeleton__ai-text-line--short" }))),
|
|
23
|
+
React.createElement("div", { className: "news-skeleton__stocks" },
|
|
24
|
+
React.createElement("div", { className: "news-skeleton__stock-card" },
|
|
25
|
+
React.createElement("div", { className: "news-skeleton__stock-logo" }),
|
|
26
|
+
React.createElement("div", { className: "news-skeleton__stock-text" }),
|
|
27
|
+
React.createElement("div", { className: "news-skeleton__stock-change" })),
|
|
28
|
+
React.createElement("div", { className: "news-skeleton__stock-card" },
|
|
29
|
+
React.createElement("div", { className: "news-skeleton__stock-logo" }),
|
|
30
|
+
React.createElement("div", { className: "news-skeleton__stock-text" }),
|
|
31
|
+
React.createElement("div", { className: "news-skeleton__stock-change" }))),
|
|
32
|
+
React.createElement("div", { className: "news-skeleton__actions" },
|
|
33
|
+
React.createElement("div", { className: "news-skeleton__action-icon" }),
|
|
34
|
+
React.createElement("div", { className: "news-skeleton__action-icon" })))))));
|
|
21
35
|
};
|
|
22
36
|
//# sourceMappingURL=NewsSkeleton.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NewsSkeleton.js","sourceRoot":"","sources":["../../src/components/NewsSkeleton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,oBAAoB,CAAC;AAoB5B,MAAM,CAAC,MAAM,YAAY,GAAgC,CAAC,EACxD,KAAK,GAAG,CAAC,EACT,SAAS,GAAG,EAAE,EACf,EAAE,EAAE;IACH,OAAO,CACL,6BAAK,SAAS,EAAE,2BAA2B,SAAS,EAAE,IACnD,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAC/C,6BAAK,GAAG,EAAE,KAAK,EAAE,SAAS,EAAC,eAAe;QAExC,6BAAK,SAAS,EAAC,uBAAuB;YACpC,6BAAK,SAAS,EAAC,
|
|
1
|
+
{"version":3,"file":"NewsSkeleton.js","sourceRoot":"","sources":["../../src/components/NewsSkeleton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,oBAAoB,CAAC;AAoB5B,MAAM,CAAC,MAAM,YAAY,GAAgC,CAAC,EACxD,KAAK,GAAG,CAAC,EACT,SAAS,GAAG,EAAE,EACf,EAAE,EAAE;IACH,OAAO,CACL,6BAAK,SAAS,EAAE,2BAA2B,SAAS,EAAE,IACnD,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAC/C,6BAAK,GAAG,EAAE,KAAK,EAAE,SAAS,EAAC,eAAe;QAExC,6BAAK,SAAS,EAAC,uBAAuB;YACpC,6BAAK,SAAS,EAAC,0BAA0B,GAAG;YAC5C,6BAAK,SAAS,EAAC,yBAAyB,GAAG,CACvC;QAGN,6BAAK,SAAS,EAAC,sBAAsB;YACnC,6BAAK,SAAS,EAAC,2DAA2D,GAAG;YAC7E,6BAAK,SAAS,EAAC,8DAA8D,GAAG,CAC5E;QAGN,6BAAK,SAAS,EAAC,uBAAuB;YACpC,6BAAK,SAAS,EAAC,4BAA4B,GAAG;YAC9C,6BAAK,SAAS,EAAC,4BAA4B,GAAG,CAC1C;QAGN,6BAAK,SAAS,EAAC,wBAAwB;YACrC,6BAAK,SAAS,EAAC,6BAA6B,GAAG;YAC/C,6BAAK,SAAS,EAAC,6BAA6B,GAAG;YAC/C,6BAAK,SAAS,EAAC,gEAAgE,GAAG,CAC9E;QAGN,6BAAK,SAAS,EAAC,2BAA2B;YACxC,6BAAK,SAAS,EAAC,wBAAwB,GAAG;YAC1C,6BAAK,SAAS,EAAC,wBAAwB;gBACrC,6BAAK,SAAS,EAAC,6BAA6B,GAAG;gBAC/C,6BAAK,SAAS,EAAC,gEAAgE,GAAG,CAC9E,CACF;QAGN,6BAAK,SAAS,EAAC,uBAAuB;YACpC,6BAAK,SAAS,EAAC,2BAA2B;gBACxC,6BAAK,SAAS,EAAC,2BAA2B,GAAG;gBAC7C,6BAAK,SAAS,EAAC,2BAA2B,GAAG;gBAC7C,6BAAK,SAAS,EAAC,6BAA6B,GAAG,CAC3C;YACN,6BAAK,SAAS,EAAC,2BAA2B;gBACxC,6BAAK,SAAS,EAAC,2BAA2B,GAAG;gBAC7C,6BAAK,SAAS,EAAC,2BAA2B,GAAG;gBAC7C,6BAAK,SAAS,EAAC,6BAA6B,GAAG,CAC3C,CACF;QAGN,6BAAK,SAAS,EAAC,wBAAwB;YACrC,6BAAK,SAAS,EAAC,4BAA4B,GAAG;YAC9C,6BAAK,SAAS,EAAC,4BAA4B,GAAG,CAC1C,CACF,CACP,CAAC,CACE,CACP,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock-news.d.ts","sourceRoot":"","sources":["../../src/constants/mock-news.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,eAAO,MAAM,SAAS,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"mock-news.d.ts","sourceRoot":"","sources":["../../src/constants/mock-news.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,eAAO,MAAM,SAAS,EAAE,QAAQ,EAyE/B,CAAC"}
|
|
@@ -1,67 +1,63 @@
|
|
|
1
1
|
export const MOCK_NEWS = [
|
|
2
2
|
{
|
|
3
3
|
id: 'mock-1',
|
|
4
|
-
title: '
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
title: 'Tesla представила новый инвестиционный фонд, ориентированный на устойчивые технологии и альтернативные источники энергии.',
|
|
5
|
+
category: 'Финансовые услуги',
|
|
6
|
+
summary: 'A breakout is expected at the resistance level of $120-122. It is recommended to consider long positions',
|
|
7
|
+
content: 'С запуском нового фонда, Tesla стремится привлечь инвесторов, заинтересованных в устойчивом будущем. 🌱💡Фонд будет вкладывать средства в проекты, связанные с возобновляемыми ресурсами и инновационными технологиями...',
|
|
7
8
|
timestamp: new Date().toISOString(),
|
|
8
|
-
|
|
9
|
+
sourceName: 'forbes.com',
|
|
10
|
+
sourceLogo: 'https://logo.clearbit.com/forbes.com',
|
|
9
11
|
stocks: [
|
|
10
12
|
{
|
|
11
|
-
symbol: '
|
|
12
|
-
price: '$
|
|
13
|
-
change: '+
|
|
13
|
+
symbol: 'NVDA',
|
|
14
|
+
price: '$ 542,9',
|
|
15
|
+
change: '+1,51 %',
|
|
14
16
|
changeType: 'positive',
|
|
15
|
-
logo: 'https://logo.clearbit.com/
|
|
16
|
-
}
|
|
17
|
-
],
|
|
18
|
-
tags: ['Technology', 'Earnings'],
|
|
19
|
-
sources: [
|
|
17
|
+
logo: 'https://logo.clearbit.com/nvidia.com'
|
|
18
|
+
},
|
|
20
19
|
{
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
symbol: 'AAPL',
|
|
21
|
+
price: '$ 0.87',
|
|
22
|
+
change: '-0.07 %',
|
|
23
|
+
changeType: 'negative',
|
|
24
|
+
logo: 'https://logo.clearbit.com/apple.com'
|
|
23
25
|
}
|
|
24
26
|
],
|
|
25
|
-
|
|
27
|
+
tags: ['Technology', 'Investment'],
|
|
28
|
+
market_events: ['mergers_acquisitions_partnerships']
|
|
26
29
|
},
|
|
27
30
|
{
|
|
28
31
|
id: 'mock-2',
|
|
29
|
-
title: '
|
|
30
|
-
|
|
31
|
-
|
|
32
|
+
title: 'Apple Reports Record Q4 Earnings, Beating Wall Street Expectations',
|
|
33
|
+
category: 'Технологии',
|
|
34
|
+
summary: 'Revenue increased 8% YoY, driven by iPhone 15 sales and services growth',
|
|
35
|
+
content: 'Apple Inc. announced quarterly revenue of $89.5 billion, up 8% year over year, driven by strong iPhone and services growth. The company\'s services segment reached an all-time high.',
|
|
32
36
|
timestamp: new Date(Date.now() - 3600000).toISOString(),
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
},
|
|
37
|
+
sourceName: 'Reuters',
|
|
38
|
+
sourceLogo: 'https://logo.clearbit.com/reuters.com',
|
|
39
|
+
cover: 'https://images.unsplash.com/photo-1611532736597-de2d4265fba3?w=800&auto=format&fit=crop',
|
|
37
40
|
stocks: [
|
|
38
41
|
{
|
|
39
|
-
symbol: '
|
|
40
|
-
price: '$
|
|
41
|
-
change: '+
|
|
42
|
+
symbol: 'AAPL',
|
|
43
|
+
price: '$189.50',
|
|
44
|
+
change: '+2.4%',
|
|
42
45
|
changeType: 'positive',
|
|
43
|
-
logo: 'https://logo.clearbit.com/
|
|
44
|
-
}
|
|
45
|
-
],
|
|
46
|
-
tags: ['Automotive', 'Stock Split'],
|
|
47
|
-
sources: [
|
|
48
|
-
{
|
|
49
|
-
name: 'Bloomberg',
|
|
50
|
-
logo: 'https://logo.clearbit.com/bloomberg.com'
|
|
51
|
-
},
|
|
52
|
-
{
|
|
53
|
-
name: 'CNBC',
|
|
54
|
-
logo: 'https://logo.clearbit.com/cnbc.com'
|
|
46
|
+
logo: 'https://logo.clearbit.com/apple.com'
|
|
55
47
|
}
|
|
56
48
|
],
|
|
57
|
-
|
|
49
|
+
tags: ['Technology', 'Earnings'],
|
|
50
|
+
market_events: ['earnings_quarterly_results']
|
|
58
51
|
},
|
|
59
52
|
{
|
|
60
53
|
id: 'mock-3',
|
|
61
54
|
title: 'Microsoft and OpenAI Expand Strategic Partnership for AI Development',
|
|
62
|
-
|
|
55
|
+
category: 'Искусственный интеллект',
|
|
56
|
+
summary: 'Multi-billion dollar investment to accelerate AI research and commercialization',
|
|
63
57
|
content: 'Microsoft announces additional multi-billion dollar investment in OpenAI. The partnership aims to accelerate AI research and bring advanced AI systems to market faster.',
|
|
64
58
|
timestamp: new Date(Date.now() - 7200000).toISOString(),
|
|
59
|
+
sourceName: 'Financial Times',
|
|
60
|
+
sourceLogo: 'https://logo.clearbit.com/ft.com',
|
|
65
61
|
cover: 'https://images.unsplash.com/photo-1677442136019-21780ecad995?w=800&auto=format&fit=crop',
|
|
66
62
|
stocks: [
|
|
67
63
|
{
|
|
@@ -73,12 +69,6 @@ export const MOCK_NEWS = [
|
|
|
73
69
|
}
|
|
74
70
|
],
|
|
75
71
|
tags: ['Technology', 'AI', 'Partnership'],
|
|
76
|
-
sources: [
|
|
77
|
-
{
|
|
78
|
-
name: 'Financial Times',
|
|
79
|
-
logo: 'https://logo.clearbit.com/ft.com'
|
|
80
|
-
}
|
|
81
|
-
],
|
|
82
72
|
market_events: ['mergers_acquisitions_partnerships']
|
|
83
73
|
}
|
|
84
74
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock-news.js","sourceRoot":"","sources":["../../src/constants/mock-news.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,SAAS,GAAe;IACnC;QACE,EAAE,EAAE,QAAQ;QACZ,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"mock-news.js","sourceRoot":"","sources":["../../src/constants/mock-news.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,SAAS,GAAe;IACnC;QACE,EAAE,EAAE,QAAQ;QACZ,KAAK,EAAE,2HAA2H;QAClI,QAAQ,EAAE,mBAAmB;QAC7B,OAAO,EAAE,0GAA0G;QACnH,OAAO,EAAE,2NAA2N;QACpO,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,UAAU,EAAE,YAAY;QACxB,UAAU,EAAE,sCAAsC;QAClD,MAAM,EAAE;YACN;gBACE,MAAM,EAAE,MAAM;gBACd,KAAK,EAAE,SAAS;gBAChB,MAAM,EAAE,SAAS;gBACjB,UAAU,EAAE,UAAmB;gBAC/B,IAAI,EAAE,sCAAsC;aAC7C;YACD;gBACE,MAAM,EAAE,MAAM;gBACd,KAAK,EAAE,QAAQ;gBACf,MAAM,EAAE,SAAS;gBACjB,UAAU,EAAE,UAAmB;gBAC/B,IAAI,EAAE,qCAAqC;aAC5C;SACF;QACD,IAAI,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;QAClC,aAAa,EAAE,CAAC,mCAAmC,CAAC;KACrD;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,KAAK,EAAE,oEAAoE;QAC3E,QAAQ,EAAE,YAAY;QACtB,OAAO,EAAE,yEAAyE;QAClF,OAAO,EAAE,uLAAuL;QAChM,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC,WAAW,EAAE;QACvD,UAAU,EAAE,SAAS;QACrB,UAAU,EAAE,uCAAuC;QACnD,KAAK,EAAE,yFAAyF;QAChG,MAAM,EAAE;YACN;gBACE,MAAM,EAAE,MAAM;gBACd,KAAK,EAAE,SAAS;gBAChB,MAAM,EAAE,OAAO;gBACf,UAAU,EAAE,UAAmB;gBAC/B,IAAI,EAAE,qCAAqC;aAC5C;SACF;QACD,IAAI,EAAE,CAAC,YAAY,EAAE,UAAU,CAAC;QAChC,aAAa,EAAE,CAAC,4BAA4B,CAAC;KAC9C;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,KAAK,EAAE,sEAAsE;QAC7E,QAAQ,EAAE,yBAAyB;QACnC,OAAO,EAAE,iFAAiF;QAC1F,OAAO,EAAE,0KAA0K;QACnL,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC,WAAW,EAAE;QACvD,UAAU,EAAE,iBAAiB;QAC7B,UAAU,EAAE,kCAAkC;QAC9C,KAAK,EAAE,yFAAyF;QAChG,MAAM,EAAE;YACN;gBACE,MAAM,EAAE,MAAM;gBACd,KAAK,EAAE,SAAS;gBAChB,MAAM,EAAE,OAAO;gBACf,UAAU,EAAE,UAAmB;gBAC/B,IAAI,EAAE,yCAAyC;aAChD;SACF;QACD,IAAI,EAAE,CAAC,YAAY,EAAE,IAAI,EAAE,aAAa,CAAC;QACzC,aAAa,EAAE,CAAC,mCAAmC,CAAC;KACrD;CACF,CAAC"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
.news-snippet {
|
|
2
2
|
background-color: #ffffff;
|
|
3
|
-
border-radius:
|
|
4
|
-
padding
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
border-radius: 0;
|
|
4
|
+
padding: 12px;
|
|
5
|
+
display: flex;
|
|
6
|
+
flex-direction: column;
|
|
7
|
+
gap: 12px;
|
|
7
8
|
cursor: pointer;
|
|
8
9
|
transition: opacity 0.2s ease;
|
|
9
10
|
}
|
|
@@ -18,25 +19,19 @@
|
|
|
18
19
|
}
|
|
19
20
|
|
|
20
21
|
.news-snippet__content {
|
|
21
|
-
padding: 0 16px;
|
|
22
22
|
display: flex;
|
|
23
23
|
flex-direction: column;
|
|
24
24
|
gap: 8px;
|
|
25
|
+
padding: 4px;
|
|
25
26
|
}
|
|
26
27
|
|
|
28
|
+
/* Header: дата/время слева, категория справа */
|
|
27
29
|
.news-snippet__header {
|
|
28
30
|
display: flex;
|
|
29
31
|
align-items: center;
|
|
30
32
|
justify-content: space-between;
|
|
31
33
|
}
|
|
32
34
|
|
|
33
|
-
.news-snippet__label {
|
|
34
|
-
font-size: 12px;
|
|
35
|
-
font-weight: 500;
|
|
36
|
-
line-height: 16px;
|
|
37
|
-
color: #040405;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
35
|
.news-snippet__timestamp {
|
|
41
36
|
display: flex;
|
|
42
37
|
align-items: center;
|
|
@@ -45,39 +40,48 @@
|
|
|
45
40
|
|
|
46
41
|
.news-snippet__date,
|
|
47
42
|
.news-snippet__time {
|
|
43
|
+
font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
|
|
48
44
|
font-size: 12px;
|
|
49
|
-
font-weight:
|
|
45
|
+
font-weight: 400;
|
|
50
46
|
line-height: 16px;
|
|
51
|
-
|
|
47
|
+
letter-spacing: -0.2px;
|
|
48
|
+
color: rgba(4, 4, 5, 0.56);
|
|
52
49
|
}
|
|
53
50
|
|
|
54
51
|
.news-snippet__divider {
|
|
55
52
|
font-size: 12px;
|
|
56
|
-
font-weight: 500;
|
|
57
53
|
line-height: 16px;
|
|
58
|
-
color: rgba(4, 4, 5, 0.
|
|
54
|
+
color: rgba(4, 4, 5, 0.12);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.news-snippet__category {
|
|
58
|
+
font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
|
|
59
|
+
font-size: 12px;
|
|
60
|
+
font-weight: 400;
|
|
61
|
+
line-height: 16px;
|
|
62
|
+
letter-spacing: -0.2px;
|
|
63
|
+
color: rgba(4, 4, 5, 0.56);
|
|
64
|
+
text-align: right;
|
|
65
|
+
white-space: nowrap;
|
|
59
66
|
}
|
|
60
67
|
|
|
68
|
+
/* Title */
|
|
61
69
|
.news-snippet__title {
|
|
70
|
+
font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
|
|
62
71
|
font-size: 18px;
|
|
63
|
-
font-weight:
|
|
72
|
+
font-weight: 600;
|
|
64
73
|
line-height: 24px;
|
|
74
|
+
letter-spacing: -0.4px;
|
|
65
75
|
color: #040405;
|
|
66
76
|
margin: 0;
|
|
77
|
+
overflow: hidden;
|
|
78
|
+
text-overflow: ellipsis;
|
|
67
79
|
display: -webkit-box;
|
|
68
80
|
-webkit-line-clamp: 3;
|
|
69
81
|
-webkit-box-orient: vertical;
|
|
70
|
-
overflow: hidden;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
/* Sources - now appear after title */
|
|
74
|
-
.news-snippet__sources {
|
|
75
|
-
display: flex;
|
|
76
|
-
align-items: center;
|
|
77
|
-
gap: 16px;
|
|
78
|
-
flex-wrap: wrap;
|
|
79
82
|
}
|
|
80
83
|
|
|
84
|
+
/* Single Source */
|
|
81
85
|
.news-snippet__source {
|
|
82
86
|
display: flex;
|
|
83
87
|
align-items: center;
|
|
@@ -88,8 +92,9 @@
|
|
|
88
92
|
width: 16px;
|
|
89
93
|
height: 16px;
|
|
90
94
|
border-radius: 10.67px;
|
|
91
|
-
border: 0.67px solid rgba(
|
|
95
|
+
border: 0.67px solid rgba(24, 23, 23, 1);
|
|
92
96
|
object-fit: cover;
|
|
97
|
+
flex-shrink: 0;
|
|
93
98
|
}
|
|
94
99
|
|
|
95
100
|
.news-snippet__source-logo--fallback {
|
|
@@ -103,6 +108,7 @@
|
|
|
103
108
|
}
|
|
104
109
|
|
|
105
110
|
.news-snippet__source-name {
|
|
111
|
+
font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
|
|
106
112
|
font-size: 14px;
|
|
107
113
|
font-weight: 500;
|
|
108
114
|
line-height: 16px;
|
|
@@ -112,82 +118,157 @@
|
|
|
112
118
|
|
|
113
119
|
/* Content text */
|
|
114
120
|
.news-snippet__content-text {
|
|
121
|
+
font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
|
|
115
122
|
font-size: 14px;
|
|
116
123
|
font-weight: 400;
|
|
117
124
|
line-height: 20px;
|
|
118
|
-
|
|
125
|
+
letter-spacing: -0.2px;
|
|
126
|
+
color: #040405;
|
|
119
127
|
margin: 0;
|
|
128
|
+
overflow: hidden;
|
|
129
|
+
text-overflow: ellipsis;
|
|
120
130
|
display: -webkit-box;
|
|
121
131
|
-webkit-line-clamp: 4;
|
|
122
132
|
-webkit-box-orient: vertical;
|
|
123
|
-
overflow: hidden;
|
|
124
133
|
}
|
|
125
134
|
|
|
126
|
-
/* AI
|
|
127
|
-
.news-snippet__ai-
|
|
135
|
+
/* AI Summary */
|
|
136
|
+
.news-snippet__ai-summary {
|
|
128
137
|
display: flex;
|
|
129
138
|
align-items: flex-start;
|
|
130
139
|
gap: 8px;
|
|
131
140
|
padding: 8px;
|
|
132
|
-
background-color: rgba(
|
|
133
|
-
border:
|
|
134
|
-
|
|
141
|
+
background-color: rgba(120, 99, 246, 0.12);
|
|
142
|
+
border-radius: 4px;
|
|
143
|
+
margin: 0 4px;
|
|
135
144
|
}
|
|
136
145
|
|
|
137
|
-
.news-snippet__ai-
|
|
146
|
+
.news-snippet__ai-summary-icon {
|
|
138
147
|
flex-shrink: 0;
|
|
139
|
-
width:
|
|
140
|
-
height:
|
|
148
|
+
width: 24px;
|
|
149
|
+
height: 24px;
|
|
141
150
|
display: flex;
|
|
142
151
|
align-items: center;
|
|
143
152
|
justify-content: center;
|
|
144
153
|
}
|
|
145
154
|
|
|
146
|
-
.news-snippet__ai-
|
|
147
|
-
width: 20px;
|
|
148
|
-
height: 20px;
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
.news-snippet__ai-insight-text {
|
|
155
|
+
.news-snippet__ai-summary-text {
|
|
152
156
|
flex: 1;
|
|
153
|
-
font-
|
|
157
|
+
font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
|
|
158
|
+
font-size: 12px;
|
|
154
159
|
font-weight: 400;
|
|
155
|
-
line-height:
|
|
160
|
+
line-height: 16px;
|
|
161
|
+
letter-spacing: -0.2px;
|
|
156
162
|
color: #040405;
|
|
157
163
|
margin: 0;
|
|
158
164
|
}
|
|
159
165
|
|
|
160
|
-
/*
|
|
161
|
-
.news-
|
|
166
|
+
/* Stock Cards */
|
|
167
|
+
.news-snippet__stocks {
|
|
168
|
+
display: flex;
|
|
169
|
+
flex-direction: column;
|
|
170
|
+
gap: 4px;
|
|
171
|
+
padding: 0 4px;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
.news-snippet__stock-card {
|
|
162
175
|
display: flex;
|
|
163
176
|
align-items: center;
|
|
164
177
|
justify-content: space-between;
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
178
|
+
padding: 4px 8px 4px 4px;
|
|
179
|
+
background-color: rgba(4, 4, 5, 0.04);
|
|
180
|
+
border-radius: 4px;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
.news-snippet__stock-left {
|
|
184
|
+
display: flex;
|
|
185
|
+
align-items: center;
|
|
186
|
+
gap: 8px;
|
|
187
|
+
min-width: 106.5px;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
.news-snippet__stock-logo {
|
|
191
|
+
width: 48px;
|
|
192
|
+
height: 48px;
|
|
193
|
+
border-radius: 100px;
|
|
194
|
+
object-fit: cover;
|
|
195
|
+
flex-shrink: 0;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
.news-snippet__stock-logo--fallback {
|
|
199
|
+
display: flex;
|
|
200
|
+
align-items: center;
|
|
201
|
+
justify-content: center;
|
|
202
|
+
background: rgba(4, 4, 5, 0.08);
|
|
203
|
+
font-size: 20px;
|
|
204
|
+
font-weight: 600;
|
|
205
|
+
color: #040405;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
.news-snippet__stock-symbol {
|
|
209
|
+
font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
|
|
210
|
+
font-size: 14px;
|
|
211
|
+
font-weight: 600;
|
|
212
|
+
line-height: 20px;
|
|
213
|
+
letter-spacing: -0.2px;
|
|
214
|
+
color: #040405;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
.news-snippet__stock-right {
|
|
218
|
+
display: flex;
|
|
219
|
+
align-items: center;
|
|
220
|
+
gap: 8px;
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
.news-snippet__stock-change {
|
|
224
|
+
font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
|
|
225
|
+
font-size: 14px;
|
|
226
|
+
font-weight: 400;
|
|
227
|
+
line-height: 20px;
|
|
228
|
+
letter-spacing: -0.2px;
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
.news-snippet__stock-change--positive {
|
|
232
|
+
color: #038c5a;
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
.news-snippet__stock-change--negative {
|
|
236
|
+
color: #d02e2e;
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
.news-snippet__stock-price {
|
|
240
|
+
font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
|
|
241
|
+
font-size: 14px;
|
|
242
|
+
font-weight: 400;
|
|
243
|
+
line-height: 20px;
|
|
244
|
+
letter-spacing: -0.2px;
|
|
245
|
+
color: #040405;
|
|
168
246
|
}
|
|
169
247
|
|
|
170
|
-
|
|
171
|
-
.news-snippet__actions
|
|
248
|
+
/* Action Bar - только справа */
|
|
249
|
+
.news-snippet__actions {
|
|
172
250
|
display: flex;
|
|
173
251
|
align-items: center;
|
|
252
|
+
justify-content: flex-end;
|
|
174
253
|
gap: 8px;
|
|
254
|
+
padding: 0 4px;
|
|
175
255
|
}
|
|
176
256
|
|
|
177
257
|
.news-snippet__action-btn {
|
|
178
258
|
display: flex;
|
|
179
259
|
align-items: center;
|
|
180
260
|
justify-content: center;
|
|
181
|
-
|
|
261
|
+
width: 16px;
|
|
262
|
+
height: 16px;
|
|
263
|
+
padding: 0;
|
|
182
264
|
border: none;
|
|
183
265
|
background: transparent;
|
|
184
|
-
border-radius: 40px;
|
|
185
266
|
cursor: pointer;
|
|
186
|
-
transition:
|
|
267
|
+
transition: opacity 0.2s ease;
|
|
187
268
|
}
|
|
188
269
|
|
|
189
270
|
.news-snippet__action-btn:hover {
|
|
190
|
-
|
|
271
|
+
opacity: 0.7;
|
|
191
272
|
}
|
|
192
273
|
|
|
193
274
|
.news-snippet__action-btn:active {
|
|
@@ -4,22 +4,22 @@ import './NewsSnippet.css';
|
|
|
4
4
|
export interface NewsSnippetProps {
|
|
5
5
|
news: NewsItem;
|
|
6
6
|
onPress?: () => void;
|
|
7
|
-
onShare?: () => void;
|
|
8
7
|
onBookmark?: () => void;
|
|
9
|
-
onLike?: () => void;
|
|
10
|
-
onDislike?: () => void;
|
|
11
8
|
onAI?: () => void;
|
|
12
|
-
showShareIcon?: boolean;
|
|
13
9
|
showBookmarkIcon?: boolean;
|
|
14
|
-
showLikeIcon?: boolean;
|
|
15
|
-
showDislikeIcon?: boolean;
|
|
16
10
|
showAIIcon?: boolean;
|
|
17
|
-
isLiked?: boolean;
|
|
18
|
-
isDisliked?: boolean;
|
|
19
11
|
isBookmarked?: boolean;
|
|
20
12
|
draggable?: boolean;
|
|
21
13
|
onDragStart?: (e: React.DragEvent) => void;
|
|
22
14
|
onDragEnd?: (e: React.DragEvent) => void;
|
|
15
|
+
onShare?: () => void;
|
|
16
|
+
onLike?: () => void;
|
|
17
|
+
onDislike?: () => void;
|
|
18
|
+
showShareIcon?: boolean;
|
|
19
|
+
showLikeIcon?: boolean;
|
|
20
|
+
showDislikeIcon?: boolean;
|
|
21
|
+
isLiked?: boolean;
|
|
22
|
+
isDisliked?: boolean;
|
|
23
23
|
}
|
|
24
24
|
export declare const NewsSnippet: React.FC<NewsSnippetProps>;
|
|
25
25
|
//# sourceMappingURL=NewsSnippet.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NewsSnippet.d.ts","sourceRoot":"","sources":["../../src/snippets/NewsSnippet.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAGpC,OAAO,mBAAmB,CAAC;AAE3B,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,
|
|
1
|
+
{"version":3,"file":"NewsSnippet.d.ts","sourceRoot":"","sources":["../../src/snippets/NewsSnippet.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAGpC,OAAO,mBAAmB,CAAC;AAE3B,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC;IAElB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC;IAC3C,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC;IAEzC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA2HlD,CAAC"}
|
|
@@ -1,42 +1,39 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { BookmarkIcon, AIStarIcon } from '../components/icons';
|
|
3
3
|
import { formatTimestamp } from '../utils/formatTimestamp';
|
|
4
4
|
import './NewsSnippet.css';
|
|
5
|
-
export const NewsSnippet = ({ news, onPress,
|
|
5
|
+
export const NewsSnippet = ({ news, onPress, onBookmark, onAI, showBookmarkIcon = true, showAIIcon = true, isBookmarked = false, draggable = false, onDragStart, onDragEnd }) => {
|
|
6
6
|
const { date, time } = formatTimestamp(news.timestamp);
|
|
7
|
-
const displaySourceName = news.sourceName || '
|
|
8
|
-
const
|
|
9
|
-
? news.sources
|
|
10
|
-
: [{ name: displaySourceName, url: news.sourceUrl, logo: undefined }];
|
|
7
|
+
const displaySourceName = news.sourceName || 'Источник';
|
|
8
|
+
const displaySourceLogo = news.sourceLogo;
|
|
11
9
|
return (React.createElement("div", { className: "news-snippet", onClick: onPress, draggable: draggable, onDragStart: onDragStart, onDragEnd: onDragEnd },
|
|
12
10
|
React.createElement("div", { className: "news-snippet__content" },
|
|
13
11
|
React.createElement("div", { className: "news-snippet__header" },
|
|
14
|
-
React.createElement("
|
|
15
|
-
(date || time) && (React.createElement("div", { className: "news-snippet__timestamp" },
|
|
12
|
+
React.createElement("div", { className: "news-snippet__timestamp" },
|
|
16
13
|
date && React.createElement("span", { className: "news-snippet__date" }, date),
|
|
17
14
|
date && time && React.createElement("span", { className: "news-snippet__divider" }, "\u2022"),
|
|
18
|
-
time && React.createElement("span", { className: "news-snippet__time" }, time))
|
|
15
|
+
time && React.createElement("span", { className: "news-snippet__time" }, time)),
|
|
16
|
+
news.category && (React.createElement("span", { className: "news-snippet__category" }, news.category))),
|
|
19
17
|
React.createElement("h3", { className: "news-snippet__title" }, news.title),
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
React.createElement("span", { className: "news-snippet__source-name" },
|
|
23
|
-
news.content && (React.createElement("p", { className: "news-snippet__content-text" }, news.content)),
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
18
|
+
React.createElement("div", { className: "news-snippet__source" },
|
|
19
|
+
displaySourceLogo ? (React.createElement("img", { src: displaySourceLogo, alt: displaySourceName, className: "news-snippet__source-logo" })) : (React.createElement("div", { className: "news-snippet__source-logo news-snippet__source-logo--fallback" }, displaySourceName.charAt(0).toUpperCase())),
|
|
20
|
+
React.createElement("span", { className: "news-snippet__source-name" }, displaySourceName)),
|
|
21
|
+
news.content && (React.createElement("p", { className: "news-snippet__content-text" }, news.content))),
|
|
22
|
+
news.summary && (React.createElement("div", { className: "news-snippet__ai-summary" },
|
|
23
|
+
React.createElement("div", { className: "news-snippet__ai-summary-icon" },
|
|
24
|
+
React.createElement(AIStarIcon, { size: 24, color: "#7863f6" })),
|
|
25
|
+
React.createElement("p", { className: "news-snippet__ai-summary-text" }, news.summary))),
|
|
26
|
+
news.stocks && news.stocks.length > 0 && (React.createElement("div", { className: "news-snippet__stocks" }, news.stocks.map((stock, index) => (React.createElement("div", { key: index, className: "news-snippet__stock-card" },
|
|
27
|
+
React.createElement("div", { className: "news-snippet__stock-left" },
|
|
28
|
+
stock.logo ? (React.createElement("img", { src: stock.logo, alt: stock.symbol, className: "news-snippet__stock-logo" })) : (React.createElement("div", { className: "news-snippet__stock-logo news-snippet__stock-logo--fallback" }, stock.symbol.charAt(0))),
|
|
29
|
+
React.createElement("span", { className: "news-snippet__stock-symbol" }, stock.symbol)),
|
|
30
|
+
React.createElement("div", { className: "news-snippet__stock-right" },
|
|
31
|
+
React.createElement("span", { className: `news-snippet__stock-change news-snippet__stock-change--${stock.changeType}` }, stock.change),
|
|
32
|
+
React.createElement("span", { className: "news-snippet__stock-price" }, stock.price))))))),
|
|
28
33
|
React.createElement("div", { className: "news-snippet__actions" },
|
|
29
|
-
React.createElement("
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
React.createElement(BookmarkIcon, { size: 24, color: isBookmarked ? '#7863f6' : 'rgba(4, 4, 5, 0.56)', fill: isBookmarked ? '#7863f6' : 'none' }))),
|
|
34
|
-
showAIIcon && (React.createElement("button", { className: "news-snippet__action-btn", onClick: (e) => { e.stopPropagation(); onAI?.(); }, "aria-label": "AI Insights" },
|
|
35
|
-
React.createElement(AIStarIcon, { size: 24, color: "rgba(4, 4, 5, 0.56)" })))),
|
|
36
|
-
React.createElement("div", { className: "news-snippet__actions-right" },
|
|
37
|
-
showDislikeIcon && (React.createElement("button", { className: `news-snippet__action-btn ${isDisliked ? 'news-snippet__action-btn--active' : ''}`, onClick: (e) => { e.stopPropagation(); onDislike?.(); }, "aria-label": "Dislike" },
|
|
38
|
-
React.createElement(DislikeIcon, { size: 24, color: isDisliked ? '#ef4444' : 'rgba(4, 4, 5, 0.56)', fill: isDisliked ? '#ef4444' : 'none' }))),
|
|
39
|
-
showLikeIcon && (React.createElement("button", { className: `news-snippet__action-btn ${isLiked ? 'news-snippet__action-btn--active' : ''}`, onClick: (e) => { e.stopPropagation(); onLike?.(); }, "aria-label": "Like" },
|
|
40
|
-
React.createElement(LikeIcon, { size: 24, color: isLiked ? '#22c55e' : 'rgba(4, 4, 5, 0.56)', fill: isLiked ? '#22c55e' : 'none' })))))));
|
|
34
|
+
showBookmarkIcon && (React.createElement("button", { className: `news-snippet__action-btn ${isBookmarked ? 'news-snippet__action-btn--active' : ''}`, onClick: (e) => { e.stopPropagation(); onBookmark?.(); }, "aria-label": "Bookmark" },
|
|
35
|
+
React.createElement(BookmarkIcon, { size: 16, color: isBookmarked ? '#7863f6' : 'rgba(4, 4, 5, 0.56)', fill: isBookmarked ? '#7863f6' : 'none' }))),
|
|
36
|
+
showAIIcon && (React.createElement("button", { className: "news-snippet__action-btn", onClick: (e) => { e.stopPropagation(); onAI?.(); }, "aria-label": "AI Insights" },
|
|
37
|
+
React.createElement(AIStarIcon, { size: 16, color: "rgba(4, 4, 5, 0.56)" }))))));
|
|
41
38
|
};
|
|
42
39
|
//# sourceMappingURL=NewsSnippet.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NewsSnippet.js","sourceRoot":"","sources":["../../src/snippets/NewsSnippet.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"NewsSnippet.js","sourceRoot":"","sources":["../../src/snippets/NewsSnippet.tsx"],"names":[],"mappings":"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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -10,9 +10,11 @@ export interface NewsItem {
|
|
|
10
10
|
title: string;
|
|
11
11
|
content: string;
|
|
12
12
|
fullContent?: string;
|
|
13
|
+
category?: string;
|
|
13
14
|
source?: string;
|
|
14
15
|
sourceName?: string;
|
|
15
16
|
sourceUrl?: string;
|
|
17
|
+
sourceLogo?: string;
|
|
16
18
|
sources?: Array<{
|
|
17
19
|
name: string;
|
|
18
20
|
url?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|