@@ -34,34 +34,34 @@ internal fun DrawOnClickModal(
3434 chartTheme : ChartTheme ,
3535 chartData : ChartData
3636) {
37- if (offsetsIndexed.isNotEmpty() && isFirstOnClick) {
3837
39- var cardSize by remember {
40- mutableStateOf(Size .Zero )
41- }
38+ var cardSize by remember {
39+ mutableStateOf(Size .Zero )
40+ }
4241
43- LaunchedEffect (key1 = chartData) {
44- cardSize = Size .Zero
45- }
42+ if (offsetsIndexed.isNotEmpty() && isFirstOnClick) {
4643
4744 val clickOffset: DpOffset = with (LocalDensity .current) {
48- val yValue =
49- if (
50- chartData.data[onClickIndex].isValueAvailable &&
51- chartData.data[onClickIndex].valueAsFloat!! <= chartData.highestYValueChart.div(
52- 2
53- )
54- ) {
55- if (chartData.data[onClickIndex].valueAsFloat == 0f ) {
56- offsetsIndexed[onClickIndex].y - (cardSize.height + 5f )
57- } else {
58- offsetsIndexed[onClickIndex].y - (cardSize.height - 20f )
59- }
45+ val isCurrentItemAvailable = chartData.data[onClickIndex].isValueAvailable
46+ val isCurrentItemShouldBeOnBottom = chartData.data[onClickIndex].valueAsFloat!! <= chartData.highestYValueChart.div(2 )
47+
48+ val yValue = if (
49+ isCurrentItemAvailable &&
50+ isCurrentItemShouldBeOnBottom
51+ ) {
52+ val isValueZero = chartData.data[onClickIndex].valueAsFloat == 0f
53+ if (isValueZero) {
54+ offsetsIndexed[onClickIndex].y - (cardSize.height + 5f )
6055 } else {
61- val addPos = 35f
62- offsetsIndexed[onClickIndex].y - addPos
56+ offsetsIndexed[onClickIndex].y - (cardSize.height - 20f )
6357 }
64- val xValue = if (onClickIndex > chartData.data.size.div(2 )) {
58+ } else {
59+ val addPos = 35f
60+ offsetsIndexed[onClickIndex].y - addPos
61+ }
62+
63+ val isCurrentItemShouldBeOnRight = onClickIndex > chartData.data.size.div(2 )
64+ val xValue = if (isCurrentItemShouldBeOnRight) {
6565 val addPos = cardSize.width + labelWidth + 25f
6666 offsetsIndexed[onClickIndex].x - addPos
6767 } else {
0 commit comments