Skip to content

Commit f7ca912

Browse files
committed
Fixed show more button
1 parent 03f16c9 commit f7ca912

1 file changed

Lines changed: 26 additions & 6 deletions

File tree

src/components/methods/WorkflowInstantiationPreview.tsx

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,13 @@ const TypographyLabel = styled(Typography)(({ theme }) => ({
1414
fontSize: '0.9em',
1515
}));
1616

17+
const InlineButton = styled('a')(({ theme }) => ({
18+
cursor: 'pointer',
19+
':hover': {
20+
'textDecoration': 'underline'
21+
}
22+
}));
23+
1724
interface WorkflowInstantiationPreviewProps {
1825
workflow: WorkflowInstantiation,
1926
meta?: boolean,
@@ -24,6 +31,7 @@ export const WorkflowInstantiationPreview = ({workflow:wf, meta=false,minimal=fa
2431
const [valuesMap, setValuesMap] = useState<Record<string, VariableBinding>>({});
2532
const [hasArray, setHasArray] = useState<boolean>(false);
2633
const [table, setTable] = useState<{[varName: string]: string[]}>({});
34+
const [showMore, setShowMore] = useState<Record<string,boolean>>({});
2735

2836
useEffect(() => {
2937
if (wf && wf.dataBindings) {
@@ -92,17 +100,29 @@ export const WorkflowInstantiationPreview = ({workflow:wf, meta=false,minimal=fa
92100

93101
const renderWorkflowVariableBinding = (binding:VariableBinding) => {
94102
let values = valuesMap[binding.variable] ? valuesMap[binding.variable].binding : binding.binding;
103+
let show = showMore[binding.variable] || false;
95104
if (!values || values.length === 0)
96105
return;
97106
if (binding.isArray) {
98107
return <span style={{color:"rgba(0, 0, 0, 0.87)"}}>
99108
[&nbsp;
100-
{values.filter((_,i) => i<3).map((v,i) => <span key={v+i}>
101-
{renderSingleBinding(binding, v)}
102-
{ i !== values.length-1 && ", " }
103-
</span>)}
104-
{values.length>=3 &&
105-
<i> and {values.length - 3} more</i> }
109+
{(show || values.length <= 3) ?
110+
<>
111+
{values.map((v,i) => <span key={v+i}>
112+
{renderSingleBinding(binding, v)}
113+
{ i !== values.length-1 && ", " }
114+
</span> )}
115+
{values.length > 3 && (<InlineButton onClick={() => setShowMore((m) => ({...m, [binding.variable]: !show}))}> (show less)</InlineButton>)}
116+
</>
117+
:
118+
<>
119+
{values.filter((_,i) => i<3).map((v,i) => <span key={v+i}>
120+
{renderSingleBinding(binding, v)}
121+
{ i !== values.length-1 && ", " }
122+
</span>)}
123+
{values.length > 3 && (<InlineButton onClick={() => setShowMore((m) => ({...m, [binding.variable]: !show}))}>and {values.length - 3} more</InlineButton>)}
124+
</>
125+
}
106126
&nbsp;]
107127
<span style={{marginLeft: '5px', color: 'darkgray', fontWeight: 'bold'}} >(List)</span>
108128
</span>

0 commit comments

Comments
 (0)