Danger warning on approval cards (red card, reasons, no Always); file shelf in the top-left slot with 'На полку' after a drop

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
maksarsanjeev
2026-10-06 22:51:35 +03:00
parent 3857776111
commit 37c01f991a
9 changed files with 296 additions and 6 deletions
@@ -80,6 +80,21 @@ struct UploadCanvasView: View {
.buttonStyle(.plain)
.frame(width: 120, height: 26)
.position(x: 290 + 60, y: 113 + 13) // center = (350, 126)
// Tertiary: put on the shelf
Button {
withAnimation(.easeInOut(duration: 0.22)) { state.shelveLastDrop() }
DispatchQueue.main.asyncAfter(deadline: .now() + 0.22) {
UploadSequenceEngine.shared.deactivate()
}
} label: {
Color.clear
.frame(width: 96, height: 26)
.contentShape(Rectangle())
}
.buttonStyle(.plain)
.frame(width: 96, height: 26)
.position(x: 418 + 48, y: 113 + 13) // center = (466, 126)
}
.opacity(f.chooseAlpha)
.allowsHitTesting(f.chooseAlpha > 0.5)
@@ -288,6 +303,14 @@ struct UploadCanvasView: View {
.font(.system(size:12.5, weight:.medium))
.foregroundColor(Color(hex:"#F1F2F4"))
cCtx.draw(btn2, at: CGPoint(x:350, y:126), anchor: .center)
// Tertiary button: shelf
cCtx.fill(roundedRect(CGRect(x:418,y:113,width:96,height:26), r:13),
with: .color(Color.white.opacity(0.09)))
let btn3 = Text("На полку")
.font(.system(size:12.5, weight:.medium))
.foregroundColor(Color(hex:"#F1F2F4"))
cCtx.draw(btn3, at: CGPoint(x:466, y:126), anchor: .center)
}
// MARK: - Mochi (superellipse body + eyes + mouth)