Skip to content

Commit f1fe28f

Browse files
committed
add feat
1 parent 3f10ef4 commit f1fe28f

File tree

2 files changed

+26
-23
lines changed

2 files changed

+26
-23
lines changed

src/components/AggregationPanel/AggregationPanel.js

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ const AggregationPanel = ({
2626
depth = 0,
2727
cloudCodeFunction = null,
2828
panelTitle = null,
29+
style,
2930
}) => {
3031
const [isExpanded, setIsExpanded] = useState(false);
3132
const [nestedData, setNestedData] = useState(null);
@@ -92,25 +93,25 @@ const AggregationPanel = ({
9293
}, [fetchNestedData]);
9394

9495
const renderSegmentContent = (segment, index) => (
95-
<div key={index} className={styles.segmentContainer}>
96-
<h2 className={styles.heading}>{segment.title}</h2>
96+
<div key={index} className={styles.segmentContainer} style={segment.style}>
97+
<h2 className={styles.heading} style={segment.titleStyle}>{segment.title}</h2>
9798
<div className={styles.segmentItems}>
9899
{segment.items.map((item, idx) => {
99100
switch (item.type) {
100101
case 'text':
101-
return <TextElement key={idx} text={item.text} />;
102+
return <TextElement key={idx} text={item.text} style={item.style} />;
102103
case 'keyValue':
103-
return <KeyValueElement key={idx} item={item} appName={appName} />;
104+
return <KeyValueElement key={idx} item={item} appName={appName} style={item.style} />;
104105
case 'table':
105-
return <TableElement key={idx} columns={item.columns} rows={item.rows} />;
106+
return <TableElement key={idx} columns={item.columns} rows={item.rows} style={item.style} />;
106107
case 'image':
107-
return <ImageElement key={idx} url={item.url} />;
108+
return <ImageElement key={idx} url={item.url} style={item.style} />;
108109
case 'video':
109-
return <VideoElement key={idx} url={item.url} />;
110+
return <VideoElement key={idx} url={item.url} style={item.style} />;
110111
case 'audio':
111-
return <AudioElement key={idx} url={item.url} />;
112+
return <AudioElement key={idx} url={item.url} style={item.style} />;
112113
case 'button':
113-
return <ButtonElement key={idx} item={item} showNote={showNote} />;
114+
return <ButtonElement key={idx} item={item} showNote={showNote} style={item.style} />;
114115
case 'panel':
115116
return (
116117
<div key={idx} className={styles.nestedPanelContainer}>
@@ -127,6 +128,7 @@ const AggregationPanel = ({
127128
depth={depth + 1}
128129
cloudCodeFunction={item.cloudCodeFunction}
129130
panelTitle={item.title}
131+
style={item.style}
130132
/>
131133
</div>
132134
);
@@ -144,6 +146,7 @@ const AggregationPanel = ({
144146
<div
145147
className={`${styles.nestedPanelHeader} ${isExpanded ? styles.expanded : ''}`}
146148
onClick={handleToggle}
149+
style={style}
147150
>
148151
<span className={`${styles.expandButton} ${isExpanded ? styles.expanded : ''}`}>
149152
{panelTitle}

src/components/AggregationPanel/AggregationPanelComponents.js

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@ import React from 'react';
22
import styles from './AggregationPanel.scss';
33

44
// Text Element Component
5-
export const TextElement = ({ text }) => (
6-
<div className="text-element">
5+
export const TextElement = ({ text, style}) => (
6+
<div className="text-element" style={style}>
77
<p>{text}</p>
88
</div>
99
);
1010

1111
// Key-Value Element Component
12-
export const KeyValueElement = ({ item, appName }) => (
13-
<div className={styles.keyValue}>
12+
export const KeyValueElement = ({ item, appName, style }) => (
13+
<div className={styles.keyValue} style={style}>
1414
{item.key}:
1515
{item.url ? (
1616
<a href={item.isRelativeUrl ? `apps/${appName}/${item.url}` : item.url} target="_blank" rel="noreferrer">
@@ -23,8 +23,8 @@ export const KeyValueElement = ({ item, appName }) => (
2323
);
2424

2525
// Table Element Component
26-
export const TableElement = ({ columns, rows }) => (
27-
<div className="table-element">
26+
export const TableElement = ({ columns, rows, style }) => (
27+
<div className="table-element" style={style}>
2828
<table>
2929
<thead>
3030
<tr>
@@ -47,36 +47,36 @@ export const TableElement = ({ columns, rows }) => (
4747
);
4848

4949
// Image Element Component
50-
export const ImageElement = ({ url }) => (
51-
<div className="image-element">
50+
export const ImageElement = ({ url, style }) => (
51+
<div className="image-element" style={style}>
5252
<a href={url} target="_blank" rel="noopener noreferrer">
5353
<img src={url} alt="Image" className={styles.image} />
5454
</a>
5555
</div>
5656
);
5757

5858
// Video Element Component
59-
export const VideoElement = ({ url }) => (
59+
export const VideoElement = ({ url, style }) => (
6060
<div className="video-element">
61-
<video controls className={styles.video}>
61+
<video controls className={styles.video} style={style}>
6262
<source src={url} type="video/mp4" />
6363
Your browser does not support the video tag.
6464
</video>
6565
</div>
6666
);
6767

6868
// Audio Element Component
69-
export const AudioElement = ({ url }) => (
69+
export const AudioElement = ({ url, style }) => (
7070
<div className="audio-element">
71-
<audio controls className={styles.audio}>
71+
<audio controls className={styles.audio} style={style}>
7272
<source src={url} type="audio/mpeg" />
7373
Your browser does not support the audio element.
7474
</audio>
7575
</div>
7676
);
7777

7878
// Button Element Component
79-
export const ButtonElement = ({ item, showNote }) => {
79+
export const ButtonElement = ({ item, showNote, style }) => {
8080
const handleClick = () => {
8181
fetch(item.action.url, {
8282
method: item.action.method,
@@ -95,7 +95,7 @@ export const ButtonElement = ({ item, showNote }) => {
9595

9696
return (
9797
<div className={styles.buttonContainer}>
98-
<button onClick={handleClick} className={styles.button}>
98+
<button onClick={handleClick} className={styles.button} style={style}>
9999
{item.text}
100100
</button>
101101
</div>

0 commit comments

Comments
 (0)