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());