Skip to content

Naturally-Inviting/swift-tca-custom-alert

Repository files navigation

TCACustomAlert

📝 Description

This package allows for custom alert presentation with The Composable Architecture from Point-Free.

Installation

Install in Xcode as a package dependency.

  1. From the File menu, select Add Packages...
  2. Enter https://github.com/Naturally-Inviting/swift-tca-custom-alert into the package URL field.

Basics

To create an alert, you need to have a store which can scope the changes of CustomTcaAlert.State and CustomTcaAlert.Action. Then pass in a view as the alert content.

import TCACustomAlert

struct MyView: View {
    let store: StoreOf<MyFeature>

    var body: some View {
        VStack {
            ContentView()
        }
        .customTcaAlert(
            store.scope(
                state: \.alertState,
                action: \.alert
            ),
            content: {
                VStack(spacing: 16) {
                    Text("Hello")
                        .font(.headline)
                    Button("Dismiss", action: { store.send(.alert(.dismiss)) })
                        .padding(.top)
                }
                .padding()
                .background()
                .cornerRadius(8)
                .padding(.horizontal)
            }
        )
    }
}

Demo

This demo application can be accessed via TCACustomAlert.xcworkspace.

Presentation Demo

🏎️ Road Map

  • Tests
  • Accessibility