fix(jsx): Don't inline trailing } for arrow functions attributes (#3110)

master
Lucas Duailibe 2017-10-26 15:32:57 -02:00 committed by Stephen Scott
parent 1d3c86be4d
commit 6ccf5c0246
4 changed files with 75 additions and 4 deletions

View File

@ -1731,8 +1731,17 @@ function genericPrintNoParens(path, options, print, args) {
isBinaryish(n.expression)));
if (shouldInline) {
const printExpression =
n.expression.type !== "ArrowFunctionExpression"
? print
: p => print(p, { expandLastArg: true });
return group(
concat(["{", path.call(print, "expression"), lineSuffixBoundary, "}"])
concat([
"{",
path.call(printExpression, "expression"),
lineSuffixBoundary,
"}"
])
);
}

View File

@ -193,7 +193,8 @@ function render() {
progress: Math.round(
100 * e.nativeEvent.loaded / e.nativeEvent.total
)
})}
})
}
/>
</View>
);
@ -208,7 +209,8 @@ function render() {
progress: Math.round(
100 * e.nativeEvent.loaded / e.nativeEvent.total
)
})}
})
}
/>
</View>
);
@ -223,7 +225,8 @@ function render() {
progress: Math.round(
100 * e.nativeEvent.loaded / e.nativeEvent.total
)
})}
})
}
/>
</View>
);

View File

@ -346,6 +346,23 @@ exports[`expression.js 1`] = `
test
</Child>
}/>;
<BookingIntroPanel
prop="long_string_make_to_force_break"
logClick={data => doLogClick("short", "short", data)}
/>;
<BookingIntroPanel
logClick={data =>
doLogClick("long_name_long_name_long_name", "long_name_long_name_long_name", data)
}
/>;
<BookingIntroPanel
logClick={data => {
doLogClick("long_name_long_name_long_name", "long_name_long_name_long_name", data)
}}
/>;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<View
style={{
@ -410,6 +427,31 @@ exports[`expression.js 1`] = `
<ParentComponent prop={<Child>test</Child>} />;
<BookingIntroPanel
prop="long_string_make_to_force_break"
logClick={data => doLogClick("short", "short", data)}
/>;
<BookingIntroPanel
logClick={data =>
doLogClick(
"long_name_long_name_long_name",
"long_name_long_name_long_name",
data
)
}
/>;
<BookingIntroPanel
logClick={data => {
doLogClick(
"long_name_long_name_long_name",
"long_name_long_name_long_name",
data
);
}}
/>;
`;
exports[`flow_fix_me.js 1`] = `

View File

@ -64,3 +64,20 @@
test
</Child>
}/>;
<BookingIntroPanel
prop="long_string_make_to_force_break"
logClick={data => doLogClick("short", "short", data)}
/>;
<BookingIntroPanel
logClick={data =>
doLogClick("long_name_long_name_long_name", "long_name_long_name_long_name", data)
}
/>;
<BookingIntroPanel
logClick={data => {
doLogClick("long_name_long_name_long_name", "long_name_long_name_long_name", data)
}}
/>;