aboutsummaryrefslogtreecommitdiff
path: root/Hotline/macOS/Files/NewFolderPopover.swift
blob: 4e282f5f00759bf92cd47daab860ea211fed75d6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import SwiftUI

struct NewFolderPopover: View {
  @Environment(\.dismiss) private var dismiss
  
  let action: ((String) -> Void)?
  
  @State private var folderName: String = "Untitled Folder"
  
  var body: some View {
    VStack(spacing: 16) {
      TextField("Folder Name", text: self.$folderName)
        .onSubmit(of: .text) {
          self.createFolder()
        }
      
      HStack(spacing: 8) {
        Spacer()
        
        Button("Cancel", role: .cancel) {
          self.dismiss()
        }
        .buttonStyle(.bordered)
        .buttonBorderShape(.capsule)
        
        if #available(macOS 26.0, *) {
          Button("New Folder", role: .confirm) {
            self.createFolder()
          }
          .buttonStyle(.borderedProminent)
          .buttonBorderShape(.capsule)
        }
        else {
          Button("OK") {
            self.dismiss()
            self.action?(self.folderName)
          }
          .buttonStyle(.borderedProminent)
          .buttonBorderShape(.capsule)
        }
      }
    }
    .frame(width: 250)
    .padding()
  }
  
  private func createFolder() {
    self.dismiss()
    self.action?(self.folderName)
  }
}