38 lines
764 B
Swift
38 lines
764 B
Swift
//
|
|
// RouletteViewDialog.swift
|
|
// SodaLive
|
|
//
|
|
// Created by klaus on 2023/12/07.
|
|
//
|
|
|
|
import SwiftUI
|
|
|
|
struct RouletteViewDialog: View {
|
|
@Binding var isShowing: Bool
|
|
|
|
let options: [String]
|
|
let selectedOption: String
|
|
let complete: () -> Void
|
|
|
|
var body: some View {
|
|
let model = FortuneWheelModel(
|
|
titles: options,
|
|
size: 320,
|
|
onSpinEnd: onSpinEnd,
|
|
getWheelItemIndex: getWheelItemIndex
|
|
)
|
|
ZStack {
|
|
FortuneWheel(model: model)
|
|
}
|
|
}
|
|
|
|
private func onSpinEnd(index: Int) {
|
|
complete()
|
|
isShowing = false
|
|
}
|
|
|
|
private func getWheelItemIndex() -> Int {
|
|
return options.firstIndex(of: selectedOption) ?? 0
|
|
}
|
|
}
|