Advertisement
easyswiftui

Untitled

Jun 28th, 2024
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 7.24 KB | None | 0 0
  1.             ScrollView(.horizontal, showsIndicators: false) {
  2.             HStack{
  3.                
  4.                 ForEach(Array(notebook.pages.enumerated()), id: \.offset) { index, page in
  5.                     DrawingPreviewView(pagesCount: notebook.pages.count, index: index, preview: page.preview, onLongTap: {
  6.                         pageToDelete = notebook.pages[index]
  7.                         showingDeletionAlert.toggle()
  8.                     }, activePage: $activePage).onTapGesture {
  9.                         savePage()
  10.                         activePage = index
  11.                         setActiveDrawing()
  12.                     }
  13.                    
  14.                     .shadow(color: .black.opacity(0.15), radius: 3, x: 0, y: 0.74)
  15.                 }
  16.                 .alert(String(format: NSLocalizedString("are_you_sure_alert", comment: ""),NSLocalizedString("page", comment: "")), isPresented: $showingDeletionAlert) {
  17.                     Button(NSLocalizedString("cancel", comment: ""), role: .cancel) { }
  18.                     Button(NSLocalizedString("yes_delete", comment: ""), role: .destructive) {
  19.                         deletePage()
  20.                     }
  21.                 }
  22.                 ZStack{
  23.                    
  24.                     Menu(content: {
  25.                        
  26.                         Button {
  27.                             if Premium.shared.isPremium {
  28.                                 makeNewPage(template: self.notebook.defaultTemplate)
  29.                             } else {
  30.                                 if notebook.pages.count <= 9 {
  31.                                     makeNewPage(template: self.notebook.defaultTemplate)
  32.                                 } else {
  33.                                     paywallService.placementId = "main"
  34.                                     DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
  35.                                         paywallService.showPaywall = true
  36.                                     }
  37.                                 }
  38.                             }
  39.                         } label: {
  40.                             Label(NSLocalizedString("new_page", comment: ""), systemImage: "plus")
  41.                         }
  42.                        
  43.                         Button {
  44.                             if Premium.shared.isPremium {
  45.                                 showingTemplatesPopover.toggle()
  46.                             } else {
  47.                                 if notebook.pages.count <= 9 {
  48.                                     showingTemplatesPopover.toggle()
  49.                                 } else {
  50.                                     paywallService.placementId = "main"
  51.                                     DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
  52.                                         paywallService.showPaywall = true
  53.                                     }
  54.                                 }
  55.                             }
  56.                         } label: {
  57.                             Label(NSLocalizedString("choose_from_templates", comment: ""), systemImage: "doc.text.image")
  58.                         }
  59.                        
  60.                     }, label: {
  61.                         ZStack{
  62.                             Rectangle()
  63.                                 .fill(.clear)
  64.                                 .frame(width: UIScreen.main.bounds.size.width / 13, height: UIScreen.main.bounds.size.height / 14)
  65.                                 .overlay(RoundedRectangle(cornerRadius: 8).stroke(style: .init(dash: [3])).foregroundColor(.black))
  66.                                 .clipShape(RoundedRectangle(cornerRadius: 8))
  67.                            
  68.                             Image(systemName: "plus")
  69.                                 .font(.system(size: 21, weight: .thin)).foregroundColor(.black)
  70.                         }
  71.                     })
  72.                     .onTapGesture {
  73.                         print("new page creating, pages count: \(notebook.pages.count)")
  74.                     }
  75.                 }.popover(isPresented: $showingTemplatesPopover, content: {
  76.                     HStack{
  77.                        ScrollView(.horizontal, showsIndicators: false) {
  78.                            HStack{
  79.                            ForEach(Array(templates.enumerated()), id: \.offset) { index, template in
  80.                                VStack {
  81.                                    ZStack{
  82.                                          Image("\(template.preview)_preview")
  83.                                            .resizable()
  84.                                             .scaledToFill()
  85.                                        if Premium.shared.isPremium {
  86.                                            TemplateCoverView(image: "\(template.preview)_preview", isPremium: false)
  87.                                        } else {
  88.                                            TemplateCoverView(image: "\(template.preview)_preview", isPremium: index <= 0 ? false : true)
  89.                                        }
  90.                                    }
  91.                                    .padding([.top])
  92.                                    .shadow(color: .black.opacity(0.05), radius: 5, x: 5, y: 5)
  93.                                    VStack(alignment: .leading, spacing: 0){
  94.                                        Text(template.name)
  95.                                            .font(.system(size: 15, weight: .semibold, design: .serif))
  96.                                    }.frame(maxWidth: .infinity, alignment: .leading)
  97.                                        .padding(.top, 10)
  98.                                }.padding(.trailing, 16)
  99.                                    .frame(width: 150)
  100.                                    .padding(.trailing, 22)
  101.                                    .onTapGesture {
  102.                                        if Premium.shared.isPremium {
  103.                                            makeNewPage(template: template)
  104.                                            showingTemplatesPopover = false
  105.                                        } else {
  106.                                            if index == 0 {
  107.                                                makeNewPage(template: template)
  108.                                                showingTemplatesPopover = false
  109.                                            } else {
  110.                                                showingTemplatesPopover = false
  111.                                                paywallService.placementId = "main"
  112.                                                DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
  113.                                                    paywallService.showPaywall = true
  114.                                                }
  115.                                            }
  116.                                        }
  117.                                    }
  118.                            }
  119.                             }
  120.                         }
  121.                     }//.frame(width: 1000)
  122.                         .padding(.all, 40)
  123.                         .background(grayColor)
  124.                 })
  125.             }.padding(.all, 1)
  126.             }
  127.             .padding(.trailing, 16)
  128.             .padding(.leading, 16)
  129.             .listRowInsets(.init(top: 0, leading: 0, bottom: 0, trailing: 16))
  130.  
  131.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement