Active ID(s)
This feature requires the withEntities to be used in the Store. It lets you hold one or more IDs indicating the entities that are currently active. It is often useful
for monitoring which entities the user is interacting with.
This feature requires @ngneat/elf-entities
Active Id
To use this feature, provide the withActiveId props factory function in the createStore call:
import { createStore } from '@ngneat/elf';
import { withEntities, withActiveId } from '@ngneat/elf-entities';
interface Todo {
id: number;
label: string;
}
const todosStore = createStore(
{ name: 'todos' },
withEntities<Todo>(),
withActiveId()
);
This will allow you to use the following ready-made mutations and queries:
Queries
selectActiveEntity
Select the active entity:
import { selectActiveEntity } from '@ngneat/elf-entities';
const active$ = todosStore.pipe(selectActiveEntity());
selectActiveId
Select the active id:
import { selectActiveId } from '@ngneat/elf-entities';
const activeId$ = todosStore.pipe(selectActiveId());
getActiveEntity
Get active entity:
import { getActiveEntity } from '@ngneat/elf-entities';
const active = todosStore.query(getActiveEntity());
getActiveId
Get the active id:
import { getActiveId } from '@ngneat/elf-entities';
const activeId = todosStore.query(getActiveId);
Mutations
setActiveId
Set the active id:
import { setActiveId } from '@ngneat/elf-entities';
todosStore.update(setActiveId(id));
resetActiveId
Reset the active id:
import { resetActiveId } from '@ngneat/elf-entities';
todosStore.update(resetActiveId());
Active Ids
To use this feature, provide the withActiveIds props factory function in the createStore call:
import { createStore } from '@ngneat/elf';
import { withEntities, withActiveIds } from '@ngneat/elf-entities';
interface Todo {
id: number;
label: string;
}
const todosStore = createStore(
{ name: 'todos' },
withEntities<Todo>(),
withActiveIds()
);
This will allow you to use the following ready-made mutations and queries:
Queries
selectActiveEntities
Select the active entities:
import { selectActiveEntities } from '@ngneat/elf-entities';
const actives$ = todosStore.pipe(selectActiveEntities());
selectActiveIds
Select the active ids:
import { selectActiveIds } from '@ngneat/elf-entities';
const activeIds$ = todosStore.pipe(selectActiveIds());
getActiveEntities
Get active entities:
import { getActiveEntities } from '@ngneat/elf-entities';
const actives = todosStore.query(getActiveEntities());
getActiveIds
Get active ids:
import { getActiveIds } from '@ngneat/elf-entities';
const activeIds = todosStore.query(getActiveIds);
Mutations
setActiveIds
Set the active ids:
import { setActiveIds } from '@ngneat/elf-entities';
todosStore.update(setActiveIds([id, id]));
addActiveIds
Add active ids:
import { addActiveIds } from '@ngneat/elf-entities';
todosStore.update(addActiveIds([id, id]));
toggleActiveIds
Toggle active ids:
import { toggleActiveIds } from '@ngneat/elf-entities';
todosStore.update(toggleActiveIds([id, id]));
removeActiveIds
Remove active ids:
import { removeActiveIds } from '@ngneat/elf-entities';
todosStore.update(removeActiveIds([id, id]));
resetActiveIds
Reset the active ids:
import { resetActiveIds } from '@ngneat/elf-entities';
todosStore.update(resetActiveIds());