chap number view prelim
parent
c04469ef19
commit
ac45ae5b20
25
Pane.swift
25
Pane.swift
|
@ -14,13 +14,30 @@ import WrappingHStack
|
||||||
struct SegRow: View {
|
struct SegRow: View {
|
||||||
var seg: SegDenorm
|
var seg: SegDenorm
|
||||||
var ribbonId: Int64
|
var ribbonId: Int64
|
||||||
|
var width: CGFloat
|
||||||
@State var highlights = Set<Int>()
|
@State var highlights = Set<Int>()
|
||||||
|
@State var chapVisible = false
|
||||||
|
|
||||||
|
|
||||||
let intraWordSpacing = CGFloat(1.6)
|
let intraWordSpacing = CGFloat(1.6)
|
||||||
var body: some View {
|
var body: some View {
|
||||||
var segSplit = seg.body.components(separatedBy: ";;")
|
var segSplit = seg.body.components(separatedBy: ";;")
|
||||||
let decoder = JSONDecoder()
|
let decoder = JSONDecoder()
|
||||||
var retView = WrappingHStack(alignment: .leading, horizontalSpacing: 0) {
|
var retView = VStack {
|
||||||
|
Text("\(seg.chap)")
|
||||||
|
.frame(width: width)
|
||||||
|
.padding(.vertical, 10)
|
||||||
|
|
||||||
|
.if(chapVisible) { $0.foregroundColor(mainTextColor) }
|
||||||
|
.if(!chapVisible) { $0.foregroundColor(secondBackgroundColor) }
|
||||||
|
|
||||||
|
.font(Font.custom("AveriaSerifLibre-Regular", size: fontSize))
|
||||||
|
.background(secondBackgroundColor)
|
||||||
|
// .background(mainBackgroundColor)
|
||||||
|
.onTapGesture {
|
||||||
|
chapVisible.toggle()
|
||||||
|
}
|
||||||
|
WrappingHStack(alignment: .leading, horizontalSpacing: 0) {
|
||||||
ForEach(0 ..< segSplit.count, id: \.self) { segIndex in
|
ForEach(0 ..< segSplit.count, id: \.self) { segIndex in
|
||||||
|
|
||||||
let verse = try! decoder.decode(Verse.self, from: segSplit[segIndex].data(using: .utf8)!)
|
let verse = try! decoder.decode(Verse.self, from: segSplit[segIndex].data(using: .utf8)!)
|
||||||
|
@ -75,6 +92,7 @@ struct SegRow: View {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return retView
|
return retView
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -104,10 +122,11 @@ struct Pane: View {
|
||||||
LazyVStack {
|
LazyVStack {
|
||||||
ForEach(segs) { seg in
|
ForEach(segs) { seg in
|
||||||
SegRow(seg: seg,
|
SegRow(seg: seg,
|
||||||
ribbonId: selectedRibbon[0].id!)
|
ribbonId: selectedRibbon[0].id!,
|
||||||
|
width: width)
|
||||||
.id("\(seg.id)")
|
.id("\(seg.id)")
|
||||||
.offset(x: -dragOffset)
|
.offset(x: -dragOffset)
|
||||||
.padding(EdgeInsets(top: 10, leading: 20, bottom: 40, trailing: 20))
|
.padding(EdgeInsets(top: 10, leading: 20, bottom: 20, trailing: 20))
|
||||||
.trackVisibility(id: "\(seg.id)")
|
.trackVisibility(id: "\(seg.id)")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,6 +11,7 @@ struct SegDenorm: Identifiable, Equatable {
|
||||||
var body: String
|
var body: String
|
||||||
// var lineIds: [Int64]
|
// var lineIds: [Int64]
|
||||||
var book: String
|
var book: String
|
||||||
|
var chap: Int64
|
||||||
}
|
}
|
||||||
|
|
||||||
extension SegDenorm {
|
extension SegDenorm {
|
||||||
|
|
|
@ -43,7 +43,7 @@ struct SegDenormRequest: Queryable {
|
||||||
var book = ret[0].book
|
var book = ret[0].book
|
||||||
|
|
||||||
var sql = """
|
var sql = """
|
||||||
select seg_id as id, seg.book as book, group_concat(line.body, ';;') as body from \
|
select seg_id as id, line.chap as chap, seg.book as book, group_concat(line.body, ';;') as body from \
|
||||||
(select * from seg where seg.book = '\(book)') as seg \
|
(select * from seg where seg.book = '\(book)') as seg \
|
||||||
join (select * from line where line.book = '\(book)') as line \
|
join (select * from line where line.book = '\(book)') as line \
|
||||||
on seg.line_id = line.line_id group by seg.seg_id
|
on seg.line_id = line.line_id group by seg.seg_id
|
||||||
|
|
|
@ -18,6 +18,11 @@ var currentOffset: CGFloat?
|
||||||
|
|
||||||
var disableDrop = false
|
var disableDrop = false
|
||||||
|
|
||||||
|
//TODO: move to globals file
|
||||||
|
let mainBackgroundColor = Color(red: 0.1, green: 0.1, blue: 0.1)
|
||||||
|
let mainTextColor = Color(UIColor(red: 0.76, green: 0.76, blue: 0.76, alpha: 1.00))
|
||||||
|
let secondBackgroundColor = Color(red: 0.18, green: 0.18, blue: 0.18)
|
||||||
|
|
||||||
public extension UserDefaults {
|
public extension UserDefaults {
|
||||||
func optionalInt(forKey defaultName: String) -> Int? {
|
func optionalInt(forKey defaultName: String) -> Int? {
|
||||||
let defaults = self
|
let defaults = self
|
||||||
|
@ -484,6 +489,8 @@ struct ContentView: View {
|
||||||
startSwipeState = nil
|
startSwipeState = nil
|
||||||
startSwipeDir = nil
|
startSwipeDir = nil
|
||||||
|
|
||||||
|
print("foo")
|
||||||
|
|
||||||
// if mainSwipe.width < 0 && pulledOut.width > 0 {
|
// if mainSwipe.width < 0 && pulledOut.width > 0 {
|
||||||
// setPulledOutWith = CGFloat(0)
|
// setPulledOutWith = CGFloat(0)
|
||||||
// } else if mainSwipe.width > 0 && pulledOut.width < 0 {
|
// } else if mainSwipe.width > 0 && pulledOut.width < 0 {
|
||||||
|
|
Loading…
Reference in New Issue