Skip to main content

Actions Directory

Location: src/actions/

Purpose: Contains Server Actions for form submissions and mutations. These are Next.js Server Actions that run on the server and handle data modifications.

Structure

actions/
├── auth/ # Authentication actions
│ ├── block-action.ts # Block/unblock user accounts
│ ├── profile-update.ts # Update user profile
│ ├── sign-in-action.ts # User sign-in
│ ├── sign-out-action.ts # User sign-out
│ └── sign-up-action.ts # User registration

├── camapaign-rates/ # Campaign rate management
│ ├── create-rate-action.ts # Create new campaign rate
│ └── update-rate-action.ts # Update existing rate

├── campaign/ # Campaign CRUD operations
│ ├── create-campaign-action.ts # Create new campaign
│ └── update-campaign-action.ts # Update existing campaign

├── credentials/ # External service credentials
│ ├── create-credentials-action.ts
│ └── update-credentials-action.ts

├── permission-sets/ # Responsibilities management
│ ├── create-new-permission-sets-action.ts
│ └── update-permission-sets-action.ts

├── petition/ # Petition operations
│ ├── create-circulator.ts # Create circulator record
│ ├── create-petition-action.ts # Create new petition
│ ├── update-petition-action.ts # Update petition
│ └── updatePetitionFormat.ts # Update petition format

├── role-based-acess/ # Role and permission management
│ ├── add-role-permission-action.ts
│ ├── create-new-role-action.ts
│ ├── create-permissionsKeys-action.ts
│ ├── update-permissionsKeys-action.ts
│ └── update-role-action.ts

├── signatures/ # Signature operations
│ └── submitSignatures.ts # Submit collected signatures

├── teams/ # Team management
│ ├── accept-campaign-invite-action.ts
│ ├── accept-invite-action.ts
│ ├── add-sub-team-action.ts
│ ├── create-teams-action.ts
│ ├── member-role-update-action.ts
│ ├── set-active-team-session.ts
│ ├── update-sub-team-action.ts
│ └── update-team-action.ts

├── transactions/ # Transaction management
│ ├── create-transaction-action.ts
│ └── update-transaction-action.ts

├── city-search.ts # City search utility
├── credentials-search.ts # Credentials search
├── place-search.ts # Place/location search
├── search-address.ts # Address search
└── team-search.ts # Team search utility

Key Characteristics:

  • All files use "use server" directive
  • Type-safe with TypeScript
  • Return standardized FormState or QueryResponse types
  • Handle validation using Zod schemas
  • Interact with Supabase via service layer