Switch to gRPC client in Swift app
Some checks are pending
Build AppImage / Build AppImage (push) Waiting to run
Build Apple Apps / Build App (iOS) (push) Waiting to run
Build Apple Apps / Build App (iOS Simulator) (push) Waiting to run
Build Apple Apps / Build App (macOS) (push) Waiting to run
Build Docker / Build Docker Image (push) Waiting to run
Build Rust Crate / Build Crate (macOS (Intel)) (push) Waiting to run
Build Rust Crate / Build Crate (macOS) (push) Waiting to run
Build Rust Crate / Build Crate (Linux) (push) Waiting to run
Build Rust Crate / Build Crate (Windows) (push) Waiting to run

This commit is contained in:
Conrad Kramer 2024-07-13 18:08:43 -07:00
parent 25a0f7c421
commit 85640ffce1
93 changed files with 1666 additions and 1327 deletions

View file

@ -1,50 +0,0 @@
import SwiftUI
struct FloatingButtonStyle: ButtonStyle {
static let duration = 0.08
var color: Color
var cornerRadius: CGFloat
func makeBody(configuration: Configuration) -> some View {
configuration.label
.font(.headline)
.foregroundColor(.white)
.frame(minHeight: 48)
.padding(.horizontal)
.background(
RoundedRectangle(cornerRadius: cornerRadius)
.fill(
LinearGradient(
colors: [
configuration.isPressed ? color.opacity(0.9) : color.opacity(0.9),
configuration.isPressed ? color.opacity(0.9) : color
],
startPoint: .init(x: 0.2, y: 0),
endPoint: .init(x: 0.8, y: 1)
)
)
.background(
RoundedRectangle(cornerRadius: cornerRadius)
.fill(configuration.isPressed ? .black : .white)
)
)
.shadow(color: .black.opacity(configuration.isPressed ? 0.0 : 0.1), radius: 2.5, x: 0, y: 2)
.scaleEffect(configuration.isPressed ? 0.975 : 1.0)
.padding(.bottom, 2)
.animation(
configuration.isPressed ? .easeOut(duration: Self.duration) : .easeIn(duration: Self.duration),
value: configuration.isPressed
)
}
}
extension ButtonStyle where Self == FloatingButtonStyle {
static var floating: FloatingButtonStyle {
floating()
}
static func floating(color: Color = .accentColor, cornerRadius: CGFloat = 10) -> FloatingButtonStyle {
FloatingButtonStyle(color: color, cornerRadius: cornerRadius)
}
}