An Angular component to render instagram like stories.
Install the library via npm:
npm install ngx-stories
import { NgxStoriesComponent, StoryGroup } from 'ngx-stories';
@Component({
selector: 'app-root',
standalone: true,
imports: [NgxStoriesComponent],
templateUrl: './app.component.html',
styleUrl: './app.component.css'
})
export class AppComponent {
storyGroups: StoryGroup[] = [
{
id: 1,
name: 'John Doe',
stories: [
{ id: 101, type: 'image', content: 'https://example.com/story1.jpg' },
],
},
{
id: 2,
name: 'Jane Smith',
stories: [
{ id: 103, type: 'image', content: 'https://example.com/story3.jpg' },
{ id: 3, type: 'video', content: 'https://example.com/video-story.mp4' },
],
},
];
}
<ngx-stories [storyGroups]="storyGroups"></ngx-stories>
Property | Type | Required | Description |
---|---|---|---|
storyGroups |
StoryGroup[] |
Yes | An input property that accepts an array of story groups. Each group contains a list of stories to display. |
options |
NgxStoriesOptions |
No | Configuration options for the story display. Options include width and height to customize the dimensions. |
triggerOnEnd |
EventEmitter<void> |
No | Output event that is triggered when the user reaches the end of all stories. |
triggerOnExit |
EventEmitter<void> |
No | Output event that is triggered when the user manually exits the story view. |
triggerOnSwipeUp |
EventEmitter<void> |
No | Output event that is triggered when the user performs a swipe-up gesture, typically for additional actions. |
onStoryGroupChange |
EventEmitter<number> |
No | Output event that is triggered when the user changes the storyGroup. |
interface NgxStoriesOptions {
width: number, // width of story
height: number, // height of story
currentStoryIndex: 0, // index from where stories should start
currentStoryGroupIndex: 0, // index from where story group should start
backlitColor: string // background color of story default is #1b1b1b
}
This library is licensed under the MIT License. Feel free to use and modify the code as per your needs.