Skip to content

Commit

Permalink
Make keyboard layout a computed var
Browse files Browse the repository at this point in the history
  • Loading branch information
Geoffrey Liu committed Mar 10, 2022
1 parent b5c164b commit a552d35
Showing 1 changed file with 15 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,19 @@ final class WordleKeyboardInputView: UIInputView {
private var keyReferences: [WeakRef<WordleKeyboardKey>] = []
private weak var forfeitKey: WordleKeyboardKey?

private var keyboardLayout: [[WordleKeyboardKey]] {
let characterRows = ["QWERTYUIOP", "ASDFGHJKL", "ZXCVBNM"]
var keyRows = characterRows.map { row in
row.map {
WordleKeyboardKey(keyType: .char($0))
}
}
keyRows[keyRows.count-1].prepend(WordleKeyboardKey(keyType: .submit))
keyRows[keyRows.count-1].append(WordleKeyboardKey(keyType: .del))

return keyRows
}

var delegate: KeyTapDelegate? {
didSet {
setupKeyboard()
Expand Down Expand Up @@ -52,22 +65,9 @@ final class WordleKeyboardInputView: UIInputView {
fatalError("init(coder:) has not been implemented")
}

private func getKeyboardLayout() -> [[WordleKeyboardKey]] {
let characterRows = ["QWERTYUIOP", "ASDFGHJKL", "ZXCVBNM"]
var keyRows = characterRows.map { row in
row.map {
WordleKeyboardKey(keyType: .char($0))
}
}
keyRows[keyRows.count-1].prepend(WordleKeyboardKey(keyType: .submit))
keyRows[keyRows.count-1].append(WordleKeyboardKey(keyType: .del))

return keyRows
}

func getPortraitModeKeyWidth() -> CGFloat {
let keyboardWidth = UIScreen.main.bounds.width
let keyboardRowKeyWidths = getKeyboardLayout().enumerated().map { index, row -> CGFloat in
let keyboardRowKeyWidths = keyboardLayout.enumerated().map { index, row -> CGFloat in
let totalSpace = row.reduce(0) { res, key in
switch key.keyType {
case .char(_), .forfeit(_), .mainMenu:
Expand Down Expand Up @@ -112,7 +112,7 @@ final class WordleKeyboardInputView: UIInputView {

let keyWidth = getPortraitModeKeyWidth()

getKeyboardLayout().enumerated().forEach { index, row in
keyboardLayout.enumerated().forEach { index, row in
let keyboardRow = KeyboardRow()
keyboardRow.delegate = delegate
let keyRowRefs = keyboardRow.configure(keys: row, keyWidth: keyWidth)
Expand Down

0 comments on commit a552d35

Please sign in to comment.