1.0.0-rc.18 • Published 5 months ago
@suada/angular v1.0.0-rc.18
@suada/angular
Angular components and services for Suada integrations. This package provides ready-to-use Angular components that integrate with @suada/core.
Installation
npm install @suada/angular @suada/core
Setup
- Import the SuadaModule in your app.module.ts:
import { SuadaModule } from '@suada/angular';
@NgModule({
imports: [
SuadaModule.forRoot({
apiKey: 'your-api-key',
organizationId: 'your-organization-id' // Optional
})
]
})
export class AppModule { }
- Use Suada components in your templates:
<!-- Integration Button -->
<suada-integration-button
[provider]="'notion'"
[redirectUri]="'https://your-app.com/callback'"
(success)="onIntegrationSuccess($event)"
(error)="onIntegrationError($event)">
Connect Notion
</suada-integration-button>
<!-- Integration List -->
<suada-integration-list
[filter]="{ provider: 'notion' }"
(select)="onIntegrationSelect($event)">
</suada-integration-list>
Components
SuadaIntegrationButton
A button component that handles the OAuth flow for integrations.
Properties
provider: string
- The integration provider (e.g., 'notion')redirectUri: string
- The OAuth callback URLbuttonText: string
- Optional custom button textbuttonClass: string
- Optional CSS class for styling
Events
success
- Emitted when integration is successfulerror
- Emitted when an error occursclick
- Emitted when the button is clicked
SuadaIntegrationList
A component that displays a list of integrated services.
Properties
filter: IntegrationFilter
- Optional filter for the integrations listlayout: 'grid' | 'list'
- Display layout (default: 'grid')loading: boolean
- Show loading state
Events
select
- Emitted when an integration is selecteddelete
- Emitted when an integration is deleted
Services
SuadaService
Angular service wrapper for the @suada/core client.
import { SuadaService } from '@suada/angular';
@Component({...})
export class YourComponent {
constructor(private suada: SuadaService) {}
async connectNotion() {
try {
const authUrl = await this.suada.initializeOAuth('notion', {
redirectUri: 'https://your-app.com/callback'
});
window.location.href = authUrl;
} catch (error) {
console.error('Failed to initialize OAuth:', error);
}
}
async handleCallback(code: string, state: string) {
try {
const result = await this.suada.handleOAuthCallback('notion', { code, state });
console.log('Integration successful:', result);
} catch (error) {
console.error('Failed to complete OAuth:', error);
}
}
}
Development
# Install dependencies
npm install
# Build the library
npm run build
# Run tests
npm test
# Run linting
npm run lint
Contributing
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
License
MIT
1.0.0-rc.13
5 months ago
1.0.0-rc.17
5 months ago
1.0.0-rc.16
5 months ago
1.0.0-rc.15
5 months ago
1.0.0-rc.14
5 months ago
1.0.0-rc.18
5 months ago
1.0.0-rc.9
6 months ago
1.0.0-rc.12
6 months ago
1.0.0-rc.11
6 months ago
1.0.0-rc.10
6 months ago
1.0.0-rc.7
6 months ago
1.0.0-rc.8
6 months ago
1.0.0-rc.6
6 months ago
1.0.0-rc.5
6 months ago
1.0.0
6 months ago