Toggle navigation
Toggle navigation
This project
Loading...
Sign in
open-source
/
warply_sdk_framework
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Graphs
Network
Create a new issue
Commits
Issue Boards
Authored by
Manos Chorianopoulos
2022-04-21 19:12:06 +0300
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
a16260ed774f0ef428c412f508533250ad841c8b
a16260ed
1 parent
b3d56463
add CouponBarcodeView v2
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
254 additions
and
5 deletions
WarplySDKFrameworkIOS/WarplySDKFrameworkIOS.xcworkspace/xcuserdata/manos.xcuserdatad/UserInterfaceState.xcuserstate
WarplySDKFrameworkIOS/WarplySDKFrameworkIOS/CouponBarcodeView.swift
WarplySDKFrameworkIOS/WarplySDKFrameworkIOS/CouponBarcodeViewInterface.swift
WarplySDKFrameworkIOS/WarplySDKFrameworkIOS.xcworkspace/xcuserdata/manos.xcuserdatad/UserInterfaceState.xcuserstate
View file @
a16260e
No preview for this file type
WarplySDKFrameworkIOS/WarplySDKFrameworkIOS/CouponBarcodeView.swift
View file @
a16260e
...
...
@@ -5,16 +5,254 @@
// Created by Manos Chorianopoulos on 21/4/22.
//
#if canImport(SwiftUI)
import
SwiftUI
import
Combine
import
Foundation
import
UIKit
extension
CouponBarcodeView
{
struct
headerView
:
View
{
var
goBack
:
()
->
()
var
uiscreen
=
UIScreen
.
main
.
bounds
var
body
:
some
View
{
HStack
(
alignment
:
.
center
)
{
Button
{
// Button Action
goBack
()
}
label
:
{
Image
(
"ic_back"
,
bundle
:
Bundle
(
for
:
MyEmptyClass
.
self
))
.
resizable
()
.
aspectRatio
(
contentMode
:
.
fit
)
.
frame
(
width
:
self
.
uiscreen
.
height
*
0.025
,
height
:
self
.
uiscreen
.
height
*
0.02
)
}
Text
(
"Εκπτωτικό κουπόνι"
)
.
fontWeight
(
.
medium
)
.
font
(
.
system
(
size
:
16
))
.
foregroundColor
(
Color
(
red
:
0.20784313725490197
,
green
:
0.3176470588235294
,
blue
:
0.40784313725490196
))
.
multilineTextAlignment
(
.
center
)
.
frame
(
maxWidth
:
.
infinity
)
.
padding
(
.
horizontal
)
}
.
frame
(
maxWidth
:
.
infinity
)
.
padding
(
.
horizontal
)
.
padding
(
.
vertical
,
10
)
}
}
struct
couponContainer
:
View
{
@State
var
coupon
:
Dictionary
<
String
,
Any
>
// @State var couponset:CouponSetItemModel
var
uiscreen
=
UIScreen
.
main
.
bounds
static
func
convertDateFormat
(
inputDate
:
String
)
->
String
{
let
dateFormatter
=
DateFormatter
()
dateFormatter
.
dateFormat
=
"yyyy-MM-dd hh:mm"
if
let
date
=
dateFormatter
.
date
(
from
:
inputDate
)
{
dateFormatter
.
dateFormat
=
"dd/MM/yyyy"
let
resultString
=
dateFormatter
.
string
(
from
:
date
)
return
resultString
}
else
{
return
""
}
}
struct
CouponBarcodeView
:
View
{
var
body
:
some
View
{
Text
(
/*@START_MENU_TOKEN@*/
"Hello, World!"
/*@END_MENU_TOKEN@*/
)
GeometryReader
{
geometry
in
ScrollView
(
showsIndicators
:
false
)
{
VStack
(
alignment
:
.
leading
)
{
ImageView
(
withURL
:
coupon
[
"img_preview"
]
as?
String
??
""
)
Text
(
coupon
[
"name"
]
as?
String
??
""
)
.
fontWeight
(
.
bold
)
.
font
(
.
system
(
size
:
16
))
.
foregroundColor
(
Color
(
red
:
0.2549019607843137
,
green
:
0.3333333333333333
,
blue
:
0.39215686274509803
))
.
multilineTextAlignment
(
.
leading
)
.
padding
(
.
horizontal
)
.
padding
(
.
top
,
self
.
uiscreen
.
height
*
0.04
)
Text
(
coupon
[
"short_description"
]
as?
String
??
""
)
.
fontWeight
(
.
regular
)
.
font
(
.
system
(
size
:
14
))
.
foregroundColor
(
Color
(
red
:
0.2549019607843137
,
green
:
0.3333333333333333
,
blue
:
0.39215686274509803
))
.
multilineTextAlignment
(
.
leading
)
.
padding
(
.
horizontal
)
.
padding
(
.
top
,
self
.
uiscreen
.
height
*
0.02
)
VStack
(
alignment
:
.
center
)
{
VStack
{}
.
frame
(
height
:
1
)
.
frame
(
width
:
self
.
uiscreen
.
width
*
0.9
)
.
background
(
Color
(
red
:
0.9019607843137255
,
green
:
0.9019607843137255
,
blue
:
0.9019607843137255
))
}
.
frame
(
maxWidth
:
.
infinity
)
VStack
(
alignment
:
.
center
)
{
VStack
{}
.
frame
(
height
:
1
)
.
frame
(
width
:
self
.
uiscreen
.
width
*
0.9
)
.
background
(
Color
(
red
:
0.9019607843137255
,
green
:
0.9019607843137255
,
blue
:
0.9019607843137255
))
}
.
frame
(
maxWidth
:
.
infinity
)
Text
(
"Το κουπόνι ισχύει έως "
+
CouponBarcodeView
.
couponContainer
.
convertDateFormat
(
inputDate
:
coupon
[
"img_preview"
]
as?
String
??
""
))
.
fontWeight
(
.
medium
)
.
font
(
.
system
(
size
:
14
))
.
foregroundColor
(
Color
(
red
:
0.2549019607843137
,
green
:
0.3333333333333333
,
blue
:
0.39215686274509803
))
.
multilineTextAlignment
(
.
center
)
.
padding
(
.
top
,
self
.
uiscreen
.
height
*
0.03
)
.
padding
(
.
horizontal
)
.
frame
(
maxWidth
:
.
infinity
)
Spacer
()
VStack
(
alignment
:
.
center
)
{
Button
{
// Button Action
print
(
"Send Gift Button tapped!"
)
}
label
:
{
HStack
{
Text
(
"Κάντο δώρο!"
)
.
fontWeight
(
.
medium
)
.
font
(
.
system
(
size
:
16
))
.
foregroundColor
(
Color
(
red
:
0.3137254901960784
,
green
:
0.6196078431372549
,
blue
:
0.1843137254901961
))
.
multilineTextAlignment
(
.
center
)
.
padding
(
.
all
)
}
}
.
frame
(
width
:
self
.
uiscreen
.
width
*
0.8
)
.
background
(
Color
(
red
:
0.9019607843137255
,
green
:
0.9019607843137255
,
blue
:
0.9019607843137255
))
.
cornerRadius
(
7
)
}
.
frame
(
maxWidth
:
.
infinity
)
.
padding
(
.
top
,
self
.
uiscreen
.
height
*
0.1
)
VStack
(
alignment
:
.
center
)
{
Button
{
// Button Action
print
(
"Shops Map Button tapped!"
)
}
label
:
{
HStack
{
Text
(
"Χάρτης Καταστημάτων"
)
.
fontWeight
(
.
medium
)
.
font
(
.
system
(
size
:
16
))
.
foregroundColor
(
Color
.
white
)
.
multilineTextAlignment
(
.
center
)
.
padding
(
.
all
)
}
}
.
frame
(
width
:
self
.
uiscreen
.
width
*
0.8
)
.
background
(
Color
(
red
:
0.4745098039215686
,
green
:
0.7490196078431373
,
blue
:
0.0784313725490196
))
.
cornerRadius
(
7
)
}
.
frame
(
maxWidth
:
.
infinity
)
.
padding
(
.
top
,
self
.
uiscreen
.
height
*
0.02
)
Button
{
// Button Action
print
(
"Terms Button tapped!"
)
}
label
:
{
Text
(
"Όροι χρήσης"
)
.
fontWeight
(
.
medium
)
.
font
(
.
system
(
size
:
14
))
.
foregroundColor
(
Color
(
red
:
0.2549019607843137
,
green
:
0.3333333333333333
,
blue
:
0.39215686274509803
))
.
underline
()
.
multilineTextAlignment
(
.
center
)
.
padding
(
.
vertical
,
self
.
uiscreen
.
height
*
0.03
)
.
padding
(
.
horizontal
)
.
frame
(
maxWidth
:
.
infinity
)
}
.
frame
(
maxWidth
:
.
infinity
)
}
.
frame
(
width
:
self
.
uiscreen
.
width
)
.
frame
(
minHeight
:
geometry
.
size
.
height
)
.
padding
(
.
bottom
,
self
.
uiscreen
.
height
*
0.03
)
}
.
frame
(
width
:
self
.
uiscreen
.
width
)
.
frame
(
maxHeight
:
.
infinity
)
}
.
frame
(
width
:
self
.
uiscreen
.
width
)
.
frame
(
maxHeight
:
.
infinity
)
}
}
struct
ImageView
:
View
{
@ObservedObject
var
imageLoader
:
UrlImageModel
var
uiscreen
=
UIScreen
.
main
.
bounds
init
(
withURL
url
:
String
)
{
imageLoader
=
UrlImageModel
(
urlString
:
url
)
}
var
body
:
some
View
{
Image
(
uiImage
:
imageLoader
.
image
??
UIImage
())
.
resizable
()
.
aspectRatio
(
contentMode
:
.
fill
)
.
frame
(
width
:
self
.
uiscreen
.
width
,
height
:
self
.
uiscreen
.
height
*
0.25
)
}
}
}
struct
CouponBarcodeView_Previews
:
PreviewProvider
{
static
var
previews
:
some
View
{
CouponBarcodeView
()
@available(iOS 13.0.0, *)
struct
CouponBarcodeView
:
View
{
var
parentView
:
UIView
var
coupon
:
Dictionary
<
String
,
Any
>
@State
var
couponset
:
CouponSetItemModel
?
var
uiscreen
=
UIScreen
.
main
.
bounds
func
goBack
()
{
for
subview
in
parentView
.
subviews
{
if
(
subview
.
tag
==
7
)
{
subview
.
removeFromSuperview
()
}
}
}
var
body
:
some
View
{
VStack
{
headerView
(
goBack
:
goBack
)
VStack
{
couponContainer
(
coupon
:
coupon
)
}
.
background
(
Color
.
white
)
.
cornerRadius
(
30
,
corners
:
[
.
topLeft
])
.
frame
(
width
:
self
.
uiscreen
.
width
)
.
frame
(
maxHeight
:
.
infinity
)
}
.
edgesIgnoringSafeArea
([
.
bottom
])
.
frame
(
width
:
self
.
uiscreen
.
width
)
.
frame
(
maxHeight
:
.
infinity
)
// .onAppear {
// // If you want to setup data with model
// couponset = CouponSetItemModel(dictionary: coupon)
//
// }
}
}
#endif
//struct CouponBarcodeView_Previews: PreviewProvider {
// static var previews: some View {
// CouponBarcodeView()
// }
//}
...
...
WarplySDKFrameworkIOS/WarplySDKFrameworkIOS/CouponBarcodeViewInterface.swift
View file @
a16260e
...
...
@@ -6,3 +6,14 @@
//
import
Foundation
import
SwiftUI
@available(iOS 13.0.0, *)
@objc
public
class
CouponBarcodeViewInterface
:
NSObject
{
@objc(couponBarcodeViewController::)
static
public
func
couponBarcodeViewController
(
parentView
:
UIView
?,
coupon
:
Dictionary
<
String
,
Any
>
)
->
UIViewController
{
return
UIHostingController
(
rootView
:
CouponBarcodeView
(
parentView
:
parentView
!
,
coupon
:
coupon
))
}
}
...
...
Please
register
or
login
to post a comment