You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Apple/Sources/AllInApp/AllIn/Components/WinModal.swift

98 lines
2.8 KiB

//
// WinModal.swift
// AllIn
//
// Created by Lucas on 27/09/2023.
//
import SwiftUI
struct WinModal: View {
@Environment(\.dismiss) var dismiss
@State var xOffset: CGFloat = 0
var body: some View {
ZStack{
GeometryReader { geometry in
let size = geometry.size.width / 20
InfiniteScroller(contentWidth: geometry.size.width) {
Image("marquee").resizable().scaledToFit()
}
VStack {
ZStack(alignment: .topLeading){
HStack{
Spacer()
Image("allinIcon").resizable().frame(width: 35, height: 35)
Spacer()
}
Image("crossIcon").resizable().frame(width: 25, height: 25).onTapGesture {
dismiss()
}
}
HStack{
Text("FÉLICITATIONS").font(.system(size: 20)).foregroundColor(.white).fontWeight(.semibold).italic()
Text("PSEUDO!").padding(.top,9).font(.system(size: 33)).fontWeight(.heavy).foregroundColor(.white)
}
.rotationEffect(.degrees(-4))
.padding(.top,40)
Spacer()
AllcoinsCapsule()
Spacer()
RecapBetCard()
Spacer()
}
.padding([.all],20)
}
}.background(
Image("modalBackgroundImage")
.resizable()
.edgesIgnoringSafeArea(.all)
.frame(width: UIScreen.main.bounds.width, height: UIScreen.main.bounds.height)
)
}
}
struct WinModal_Previews: PreviewProvider {
static var previews: some View {
WinModal()
}
}
struct InfiniteScroller<Content: View>: View {
var contentWidth: CGFloat
var content: (() -> Content)
@State
var xOffset: CGFloat = -800
var body: some View {
ScrollView(.horizontal, showsIndicators: false) {
HStack(spacing: 0) {
content()
content()
content()
}
.offset(x: xOffset, y: 0).opacity(0.3)
}
.disabled(true)
.onAppear {
withAnimation(
.linear(duration: 25)
.repeatForever(autoreverses: false)
) {
xOffset = +contentWidth
}
}
.frame(width: 1300, height: 1300)
.padding(.leading, -400)
.rotationEffect(.degrees(30))
.opacity(0.1)
}
}