Skip to content

Commit

Permalink
Create GrapesDatePickerDialog
Browse files Browse the repository at this point in the history
  • Loading branch information
jpbarbaud committed Mar 4, 2024
1 parent c721111 commit 84361d8
Showing 1 changed file with 58 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
package com.spendesk.grapes.compose.calendar

import androidx.compose.material3.DatePickerColors
import androidx.compose.material3.DatePickerDialog
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Shape
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.window.DialogProperties
import com.spendesk.grapes.compose.theme.GrapesTheme
import java.util.Date

@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun GrapesDatePickerDialog(
initialDisplayedDate: Date,
onDateSelected: (selectedDate: Date) -> Unit,
modifier: Modifier = Modifier,
colors: DatePickerColors = GrapesDatePickerDefaults.colors(),
shape: Shape = GrapesTheme.shapes.shape2,
dismissOnBack: Boolean = true,
dismissOnClickOutside: Boolean = true,
confirmButton: @Composable () -> Unit = { },
dismissButton: (@Composable () -> Unit)? = null,
onDismissRequest: (() -> Unit)? = null,
) {
DatePickerDialog(
modifier = modifier,
onDismissRequest = { onDismissRequest?.invoke() },
confirmButton = confirmButton,
dismissButton = dismissButton,
colors = colors,
shape = shape,
properties = DialogProperties(
dismissOnBackPress = dismissOnBack,
dismissOnClickOutside = dismissOnClickOutside,
),
content = {
GrapesDatePicker(
initialDisplayedDate = initialDisplayedDate,
onDateSelected = { date -> onDateSelected(date) }
)
}
)
}

@OptIn(ExperimentalMaterial3Api::class)
@Preview(showBackground = false)
@Composable
fun PreviewGrapesDatePickerDialog() {
GrapesTheme {
GrapesDatePickerDialog(
initialDisplayedDate = Date(),
onDateSelected = { }
)
}
}

0 comments on commit 84361d8

Please sign in to comment.