给错参照了,参照最新的jafrsho07040
package jp.or.jaf.syg.feature.jafrsho07.jafrsho07040.components
import androidx.compose.foundation.background
import androidx.compose.foundation.border
import androidx.compose.foundation.isSystemInDarkTheme
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxHeight
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.width
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.itemsIndexed
import androidx.compose.foundation.lazy.rememberLazyListState
import androidx.compose.material3.MaterialTheme
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.em
import androidx.hilt.navigation.compose.hiltViewModel
import jp.or.jaf.syg.core.designsystem.theme.FigmaDesign.dp
import jp.or.jaf.syg.core.designsystem.theme.FigmaDesign.sp
import jp.or.jaf.syg.core.designsystem.theme.Jaf191F53
import jp.or.jaf.syg.core.designsystem.theme.JafScrollBarDark
import jp.or.jaf.syg.core.designsystem.theme.JafTableBorderDark
import jp.or.jaf.syg.core.designsystem.theme.JafTableBorderLight
import jp.or.jaf.syg.core.designsystem.theme.JafTableEvenBackgroundDark
import jp.or.jaf.syg.core.designsystem.theme.JafTableEvenBackgroundLight
import jp.or.jaf.syg.core.designsystem.theme.JafTableHeaderBackgroundLight
import jp.or.jaf.syg.core.designsystem.theme.JafTableOddBackgroundDark
import jp.or.jaf.syg.core.designsystem.theme.JafTableOddBackgroundLight
import jp.or.jaf.syg.core.designsystem.theme.scrollBar
import jp.or.jaf.syg.core.ui.components.JafCheckBox
import jp.or.jaf.syg.core.ui.components.JafText
import jp.or.jaf.syg.core.ui.components.JafTextField
import jp.or.jaf.syg.core.ui.components.JafTextSelect
import jp.or.jaf.syg.core.ui.components.JafVerticalScrollbar
import jp.or.jaf.syg.core.ui.components.ScrollbarStyle
import jp.or.jaf.syg.core.ui.components.rememberScrollbarAdapter
import jp.or.jaf.syg.domain.model.common.AuthKbnCd
import jp.or.jaf.syg.feature.R
import jp.or.jaf.syg.feature.jafrsho07.jafrsho07040.JAFRSHO07040Action
import jp.or.jaf.syg.feature.jafrsho07.jafrsho07040.JAFRSHO07040UiStateData
import jp.or.jaf.syg.feature.jafrsho07.jafrsho07040.JAFRSHO07040ViewModel
/**
*コンテンツ領域
*/
@Composable
fun JAFRSHO07040Content(
viewModel: JAFRSHO07040ViewModel = hiltViewModel(),
stateData: JAFRSHO07040UiStateData,
onItemClick: (Int) -> Unit,
) {
val lazyListState = rememberLazyListState()
Column(
modifier = Modifier
.background(color = Color.Transparent)
.fillMaxWidth()
.fillMaxHeight()
.padding(horizontal = 20.dp, vertical = 10.dp)
) {
/** キャッシュレス決済画面から呼び出された場合 */
if (stateData.henkinReasonFlg == "1") {
/** メッセージ */
JafText(
text = stateData.lblMessage,
textAlign = TextAlign.Start,
maxLines = 2,
modifier = Modifier
.fillMaxWidth()
.height(100.dp)
.padding(horizontal = 5.dp, vertical = 2.dp),
fontSize = 8.em
)
/** 返金理由 */
JafTextField(
label = stringResource(id = R.string.txtbox_henkin_reason),
labelModifier = Modifier.width(128.dp)
.height(64.dp)
.padding(vertical = 6.dp),
labelFontSize = 32,
isRequired = stateData.isActiveEnable,
) {
/** 返金理由 */
JafText(
modifier = Modifier
.fillMaxWidth()
.height(55.dp)
.border(
1.dp,
if (isSystemInDarkTheme()) {
JafTableBorderDark
} else {
JafTableBorderLight
}
)
.padding(horizontal = 10.dp, vertical = 2.5.dp),
textAlign = TextAlign.Start,
text = stateData.txtboxHenkinReason,
fontSize = 32.sp
)
}
Row {
Spacer(
modifier = Modifier
.width(188.dp)
)
/** 返金理由選択 */
LazyColumn(
modifier = Modifier
.fillMaxWidth()
.padding(horizontal = 20.dp)
.height(300.dp),
) {
itemsIndexed(stateData.lstboxHenkinReason) { index, item ->
val rowColor = if (index % 2 == 0) {
if (isSystemInDarkTheme()) {
JafTableEvenBackgroundDark
} else {
JafTableOddBackgroundLight
}
} else {
if (isSystemInDarkTheme()) {
JafTableOddBackgroundDark.copy(0.1F, 255F, 255F, 255F)
} else {
JafTableEvenBackgroundLight
}
}
Box(
modifier = Modifier
.height(65.dp)
.border(
1.dp,
if (isSystemInDarkTheme()) {
JafTableBorderDark
} else {
JafTableBorderLight
}
)
.background(rowColor)
) {
JafTextSelect(
value = item.reason,
rowModifier = Modifier.padding(horizontal = 10.dp, vertical = 5.dp),
fontSize = 32,
overflow = TextOverflow.Ellipsis,
onValueClick = { onItemClick(index) },
)
}
}
}
}
} else {
/** 指令確認画面から呼び出された場合 */
/** 権限区分コードがJAF責任者またはJAF隊員の場合、 */
if (stateData.authKbnCd == AuthKbnCd.ADMINISTRATOR.code ||
stateData.authKbnCd == AuthKbnCd.ADMINISTRATORS.code ||
stateData.authKbnCd == AuthKbnCd.DIRECT_SERVICE_MEMBER.code ||
stateData.authKbnCd == AuthKbnCd.DIRECT_SERVICE_MEMBERS.code
) {
Box(
modifier = Modifier
.fillMaxWidth()
.background(
if (isSystemInDarkTheme()) {
JafTableEvenBackgroundDark
} else {
JafTableHeaderBackgroundLight
}
)
.height(66.dp)
)
/** 取消理由 */
JafTextField(
label = stringResource(id = R.string.txtbox_torikeshi_reason),
labelModifier = Modifier.width(128.dp)
.height(64.dp)
.padding(vertical = 6.dp),
labelFontSize = 32,
isRequired = stateData.isActiveEnable,
) {
JafText(
modifier = Modifier
.fillMaxWidth()
.height(55.dp)
.border(
1.dp,
if (isSystemInDarkTheme()) {
JafTableBorderDark
} else {
JafTableBorderLight
}
)
.padding(horizontal = 10.dp, vertical = 2.5.dp),
textAlign = TextAlign.Start,
text = stateData.lblTorikeshiReason,
fontSize = 32.sp,
)
}
Row {
Spacer(
modifier = Modifier
.width(208.dp)
)
Box(
modifier = Modifier
.border(
1.dp,
if (isSystemInDarkTheme()) {
JafTableBorderDark
} else {
JafTableBorderLight
}
)
) {
/** 取消理由選択 */
LazyColumn(
modifier = Modifier
.fillMaxHeight(),
state = lazyListState
) {
itemsIndexed(stateData.lstboxTorikeshiReason) { index, item ->
val rowColor = if (index % 2 == 0) {
if (isSystemInDarkTheme()) {
JafTableEvenBackgroundDark
} else {
JafTableOddBackgroundLight
}
} else {
if (isSystemInDarkTheme()) {
JafTableOddBackgroundDark.copy(0.1F, 255F, 255F, 255F)
} else {
JafTableEvenBackgroundLight
}
}
Box(
modifier = Modifier
.height(63.dp)
.border(
1.dp,
if (isSystemInDarkTheme()) {
JafTableBorderDark
} else {
JafTableBorderLight
}
)
.background(rowColor)
) {
JafTextSelect(
value = item.reason,
rowModifier = Modifier.padding(
horizontal = 10.dp,
vertical = 5.dp
),
fontSize = 32,
overflow = TextOverflow.Ellipsis,
onValueClick = { onItemClick(index) },
)
}
}
}
if (stateData.lstboxTorikeshiReason.size > 5) {
// スクロールバー
JafVerticalScrollbar(
modifier = Modifier
.align(Alignment.CenterEnd),
adapter = rememberScrollbarAdapter(
listState = lazyListState,
containerSize = 630f
),
style = ScrollbarStyle(
thickness = 10.dp,
thumbColor = MaterialTheme.colorScheme.scrollBar,
trackColor = if (isSystemInDarkTheme()) {
Jaf191F53
} else {
JafScrollBarDark
},
showArrow = true,
trackSize = 24.dp,
autoHide = false
),
bottomArrowModifier = Modifier.padding(bottom = 1.dp)
)
}
}
}
} else if (stateData.authKbnCd == AuthKbnCd.SECURITY_COMPANY.code ||
stateData.authKbnCd == AuthKbnCd.SECURITY_COMPANYS.code
) {
if (stateData.rs1Count > 0) {
/** 取消理由 */
JafTextField(
label = stringResource(id = R.string.txtbox_torikeshi_reason),
labelModifier = Modifier.width(128.dp)
.height(64.dp)
.padding(vertical = 6.dp),
labelFontSize = 32,
isRequired = stateData.isActiveEnable,
) {
JafText(
modifier = Modifier
.fillMaxWidth()
.height(55.dp)
.border(
1.dp,
if (isSystemInDarkTheme()) {
JafTableBorderDark
} else {
JafTableBorderLight
}
)
.padding(horizontal = 10.dp, vertical = 2.5.dp),
textAlign = TextAlign.Start,
text = stateData.lblTorikeshiReason,
fontSize = 32.sp,
)
}
Row {
Spacer(
modifier = Modifier
.width(208.dp)
)
Box(
modifier = Modifier
.border(
1.dp,
if (isSystemInDarkTheme()) {
JafTableBorderDark
} else {
JafTableBorderLight
}
)
) {
/** 取消理由選択 */
LazyColumn(
modifier = Modifier
.fillMaxHeight(),
state = lazyListState
) {
itemsIndexed(stateData.lstboxTorikeshiReason) { index, item ->
val rowColor = if (index % 2 == 0) {
if (isSystemInDarkTheme()) {
JafTableEvenBackgroundDark
} else {
JafTableOddBackgroundLight
}
} else {
if (isSystemInDarkTheme()) {
JafTableOddBackgroundDark.copy(0.1F, 255F, 255F, 255F)
} else {
JafTableEvenBackgroundLight
}
}
Box(
modifier = Modifier
.height(63.dp)
.border(
1.dp,
if (isSystemInDarkTheme()) {
JafTableBorderDark
} else {
JafTableBorderLight
}
)
.background(rowColor)
) {
JafTextSelect(
value = item.reason,
rowModifier = Modifier.padding(
horizontal = 10.dp,
vertical = 5.dp
),
fontSize = 32,
overflow = TextOverflow.Ellipsis,
onValueClick = { onItemClick(index) },
)
}
}
}
if (stateData.lstboxTorikeshiReason.size > 6) {
// スクロールバー
JafVerticalScrollbar(
modifier = Modifier
.align(Alignment.CenterEnd),
adapter = rememberScrollbarAdapter(
listState = lazyListState,
containerSize = 630f
),
style = ScrollbarStyle(
thickness = 10.dp,
thumbColor = MaterialTheme.colorScheme.scrollBar,
trackColor = if (isSystemInDarkTheme()) {
Jaf191F53
} else {
JafScrollBarDark
},
showArrow = true,
trackSize = 24.dp,
autoHide = false
),
bottomArrowModifier = Modifier.padding(bottom = 1.dp)
)
}
}
}
} else {
Box(
modifier = Modifier
.background(
if (isSystemInDarkTheme()) {
JafTableEvenBackgroundDark
} else {
JafTableHeaderBackgroundLight
}
)
.fillMaxWidth()
.height(66.dp)
) {
JafTextField(
// 伝票有
label = stringResource(id = R.string.chkbox_dempyoUmu),
labelModifier = Modifier.width(150.dp)
.height(58.dp)
.padding(vertical = 4.dp),
labelFontSize = 32,
) {
JafCheckBox(
label = "",
checked = stateData.chkboxDempyoUmu,
onCheckedChange = {
viewModel.onAction(
JAFRSHO07040Action.OnDempyoUmu
)
},
)
}
}
/** 取消理由 */
JafTextField(
label = stringResource(id = R.string.txtbox_torikeshi_reason),
labelModifier = Modifier.width(128.dp)
.height(64.dp)
.padding(vertical = 6.dp),
labelFontSize = 32,
isRequired = stateData.isActiveEnable,
) {
JafText(
modifier = Modifier
.fillMaxWidth()
.height(55.dp)
.border(
1.dp,
if (isSystemInDarkTheme()) {
JafTableBorderDark
} else {
JafTableBorderLight
}
)
.padding(horizontal = 10.dp, vertical = 2.5.dp),
textAlign = TextAlign.Start,
text = stateData.lblTorikeshiReason,
fontSize = 32.sp,
)
}
Row {
Spacer(
modifier = Modifier
.width(208.dp)
)
Box(
modifier = Modifier
.border(
1.dp,
if (isSystemInDarkTheme()) {
JafTableBorderDark
} else {
JafTableBorderLight
}
)
) {
/** 取消理由選択 */
LazyColumn(
modifier = Modifier
.fillMaxHeight(),
state = lazyListState
) {
itemsIndexed(stateData.lstboxTorikeshiReason) { index, item ->
val rowColor = if (index % 2 == 0) {
if (isSystemInDarkTheme()) {
JafTableEvenBackgroundDark
} else {
JafTableOddBackgroundLight
}
} else {
if (isSystemInDarkTheme()) {
JafTableOddBackgroundDark.copy(0.1F, 255F, 255F, 255F)
} else {
JafTableEvenBackgroundLight
}
}
Box(
modifier = Modifier
.height(63.dp)
.border(
1.dp,
if (isSystemInDarkTheme()) {
JafTableBorderDark
} else {
JafTableBorderLight
}
)
.background(rowColor)
) {
JafTextSelect(
value = item.reason,
rowModifier = Modifier.padding(
horizontal = 10.dp,
vertical = 5.dp
),
fontSize = 32,
overflow = TextOverflow.Ellipsis,
onValueClick = { onItemClick(index) },
)
}
}
}
if (stateData.lstboxTorikeshiReason.size > 5) {
// スクロールバー
JafVerticalScrollbar(
modifier = Modifier
.align(Alignment.CenterEnd),
adapter = rememberScrollbarAdapter(
listState = lazyListState,
containerSize = 630f
),
style = ScrollbarStyle(
thickness = 10.dp,
thumbColor = MaterialTheme.colorScheme.scrollBar,
trackColor = if (isSystemInDarkTheme()) {
Jaf191F53
} else {
JafScrollBarDark
},
showArrow = true,
trackSize = 24.dp,
autoHide = false
),
bottomArrowModifier = Modifier.padding(bottom = 1.dp)
)
}
}
}
}
} else {
Box(
modifier = Modifier
.background(
if (isSystemInDarkTheme()) {
JafTableEvenBackgroundDark
} else {
JafTableHeaderBackgroundLight
}
)
.fillMaxWidth()
.height(66.dp)
) {
JafTextField(
// 伝票有
label = stringResource(id = R.string.chkbox_dempyoUmu),
labelModifier = Modifier.width(150.dp)
.height(58.dp)
.padding(vertical = 4.dp),
labelFontSize = 32,
) {
JafCheckBox(
label = "",
checked = stateData.chkboxDempyoUmu,
onCheckedChange = {
viewModel.onAction(
JAFRSHO07040Action.OnDempyoUmu
)
},
)
}
}
/** 取消理由 */
JafTextField(
label = stringResource(id = R.string.txtbox_torikeshi_reason),
labelModifier = Modifier.width(128.dp)
.height(64.dp)
.padding(vertical = 6.dp),
labelFontSize = 32,
isRequired = stateData.isActiveEnable,
) {
JafText(
modifier = Modifier
.fillMaxWidth()
.height(55.dp)
.border(
1.dp,
if (isSystemInDarkTheme()) {
JafTableBorderDark
} else {
JafTableBorderLight
}
)
.padding(horizontal = 10.dp, vertical = 2.5.dp),
textAlign = TextAlign.Start,
text = stateData.lblTorikeshiReason,
fontSize = 32.sp,
)
}
Row {
Spacer(
modifier = Modifier
.width(208.dp)
)
Box(
modifier = Modifier
.border(
1.dp,
if (isSystemInDarkTheme()) {
JafTableBorderDark
} else {
JafTableBorderLight
}
)
.height(410.dp)
) {
/** 取消理由選択 */
LazyColumn(
modifier = Modifier
.fillMaxHeight(),
state = lazyListState
) {
itemsIndexed(stateData.lstboxTorikeshiReason) { index, item ->
val rowColor = if (index % 2 == 0) {
if (isSystemInDarkTheme()) {
JafTableEvenBackgroundDark
} else {
JafTableOddBackgroundLight
}
} else {
if (isSystemInDarkTheme()) {
JafTableOddBackgroundDark.copy(0.1F, 255F, 255F, 255F)
} else {
JafTableEvenBackgroundLight
}
}
Box(
modifier = Modifier
.height(63.dp)
.border(
1.dp,
if (isSystemInDarkTheme()) {
JafTableBorderDark
} else {
JafTableBorderLight
}
)
.background(rowColor)
) {
JafTextSelect(
value = item.reason,
rowModifier = Modifier.padding(
horizontal = 10.dp,
vertical = 5.dp
),
fontSize = 32,
overflow = TextOverflow.Ellipsis,
onValueClick = { onItemClick(index) },
)
}
}
}
if (stateData.lstboxTorikeshiReason.size > 5) {
// スクロールバー
JafVerticalScrollbar(
modifier = Modifier
.align(Alignment.CenterEnd),
adapter = rememberScrollbarAdapter(
listState = lazyListState,
containerSize = 630f
),
style = ScrollbarStyle(
thickness = 10.dp,
thumbColor = MaterialTheme.colorScheme.scrollBar,
trackColor = if (isSystemInDarkTheme()) {
Jaf191F53
} else {
JafScrollBarDark
},
showArrow = true,
trackSize = 24.dp,
autoHide = false
),
bottomArrowModifier = Modifier.padding(bottom = 1.dp)
)
}
}
}
}
}
}
}