|
|
@@ -40,35 +40,39 @@ struct PunctuationCheckerView: View {
|
|
|
.padding(.top, AppTheme.brandLabelTopInset)
|
|
|
.padding(.bottom, dynamicBottomPadding)
|
|
|
} else {
|
|
|
- ScrollView(.vertical, showsIndicators: false) {
|
|
|
- VStack(alignment: .leading, spacing: 0) {
|
|
|
- header
|
|
|
- .padding(.bottom, 24)
|
|
|
-
|
|
|
- contentCard
|
|
|
- .padding(.bottom, 24)
|
|
|
-
|
|
|
- outputCard
|
|
|
- .padding(.bottom, 24)
|
|
|
-
|
|
|
- if let errorMessage = viewModel.errorMessage {
|
|
|
- Text(errorMessage)
|
|
|
- .font(.system(size: 14))
|
|
|
- .foregroundStyle(.red)
|
|
|
- .padding(.bottom, 12)
|
|
|
- }
|
|
|
+ VStack(alignment: .leading, spacing: 0) {
|
|
|
+ header
|
|
|
+ .padding(.bottom, 24)
|
|
|
|
|
|
- GradientButton(title: viewModel.isChecking ? "Checking..." : "Check Punctuation") {
|
|
|
- viewModel.checkPunctuation()
|
|
|
+ ScrollView(.vertical, showsIndicators: false) {
|
|
|
+ VStack(alignment: .leading, spacing: 0) {
|
|
|
+ contentCard
|
|
|
+ .padding(.bottom, 24)
|
|
|
+
|
|
|
+ outputCard
|
|
|
+ .padding(.bottom, 24)
|
|
|
+
|
|
|
+ if let errorMessage = viewModel.errorMessage {
|
|
|
+ Text(errorMessage)
|
|
|
+ .font(.system(size: 14))
|
|
|
+ .foregroundStyle(.red)
|
|
|
+ .padding(.bottom, 12)
|
|
|
+ }
|
|
|
+
|
|
|
+ GradientButton(title: viewModel.isChecking ? "Checking..." : "Check Punctuation") {
|
|
|
+ viewModel.checkPunctuation()
|
|
|
+ }
|
|
|
+ .disabled(!viewModel.canCheck)
|
|
|
}
|
|
|
- .disabled(!viewModel.canCheck)
|
|
|
+ .padding(.bottom, dynamicBottomPadding)
|
|
|
}
|
|
|
- .frame(maxWidth: 1200, alignment: .topLeading)
|
|
|
- .frame(maxWidth: .infinity, alignment: .topLeading)
|
|
|
- .padding(.horizontal, dynamicHorizontalPadding)
|
|
|
- .padding(.top, AppTheme.brandLabelTopInset)
|
|
|
- .padding(.bottom, dynamicBottomPadding)
|
|
|
+ .frame(maxWidth: .infinity, maxHeight: .infinity)
|
|
|
}
|
|
|
+ .frame(maxWidth: 1200, maxHeight: .infinity, alignment: .topLeading)
|
|
|
+ .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .topLeading)
|
|
|
+ .padding(.horizontal, dynamicHorizontalPadding)
|
|
|
+ .padding(.top, AppTheme.brandLabelTopInset)
|
|
|
+ .padding(.bottom, dynamicBottomPadding)
|
|
|
}
|
|
|
}
|
|
|
}
|