Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
59 changes: 59 additions & 0 deletions Sources/Views/SettingSecureField.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
//
// SettingSecureField.swift
// Setting
//
// Created by Yiğit Kerem Oktay on 30/1/2025.
// Copyright © 2025 The Skyfallen Company. All rights reserved.
//

import SwiftUI

/**
A text field.
*/
public struct SettingSecureField: View, Setting {
public var id: AnyHashable?
public var placeholder: String
@Binding public var text: String
public var verticalPadding = CGFloat(14)
public var horizontalPadding = CGFloat(16)

public init(
id: AnyHashable? = nil,
placeholder: String,
text: Binding<String>,
verticalPadding: CGFloat = CGFloat(14),
horizontalPadding: CGFloat = CGFloat(16)
) {
self.id = id
self.placeholder = placeholder
self._text = text
self.verticalPadding = verticalPadding
self.horizontalPadding = horizontalPadding
}

public var body: some View {
SettingSecureFieldView(
placeholder: placeholder,
text: $text,
verticalPadding: verticalPadding,
horizontalPadding: horizontalPadding
)
}
}

struct SettingSecureFieldView: View {
let placeholder: String
@Binding var text: String

var verticalPadding = CGFloat(14)
var horizontalPadding = CGFloat(16)

var body: some View {
SecureField(placeholder, text: $text)
.frame(maxWidth: .infinity, alignment: .leading)
.padding(.vertical, verticalPadding)
.padding(.horizontal, horizontalPadding)
.accessibilityElement(children: .combine)
}
}
2 changes: 2 additions & 0 deletions Sources/Views/SettingView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@ public struct SettingView: View {
picker
case let textField as SettingTextField:
textField
case let secureField as SettingSecureField:
secureField
case let page as SettingPage:

if isPagePreview {
Expand Down