diff --git a/docs/.vitepress/config.js b/docs/.vitepress/config.js index 3e80d2bca..62601da7b 100644 --- a/docs/.vitepress/config.js +++ b/docs/.vitepress/config.js @@ -6,7 +6,11 @@ export default defineConfig({ description: 'Lilium docs', themeConfig: { // https://vitepress.dev/reference/default-theme-config - nav: [{ text: 'Home', link: '/' }], + nav: [ + { text: 'Home', link: '/' }, + { text: 'Components', link: '/components/vnInput' }, + { text: 'Composables', link: '/composables/useArrayData' }, + ], sidebar: [ { @@ -17,6 +21,14 @@ export default defineConfig({ collapsed: true, items: [{ text: 'VnInput', link: '/components/vnInput' }], }, + { + text: 'Composables', + collapsible: true, + collapsed: true, + items: [ + { text: 'useArrayData', link: '/composables/useArrayData' }, + ], + }, ], }, ], diff --git a/docs/composables/useArrayData.md b/docs/composables/useArrayData.md new file mode 100644 index 000000000..5033097fc --- /dev/null +++ b/docs/composables/useArrayData.md @@ -0,0 +1,215 @@ +# useArrayData + +`useArrayData` is a composable function that provides a set of utilities for managing array data in a Vue component. It leverages Pinia for state management and provides various methods for fetching, filtering, and manipulating data. + +## Usage + +```javascript +import { useArrayData } from 'src/composables/useArrayData'; + +const { + fetch, + applyFilter, + addFilter, + getCurrentFilter, + setCurrentFilter, + addFilterWhere, + addOrder, + deleteOrder, + refresh, + destroy, + loadMore, + store, + totalRows, + updateStateParams, + isLoading, + deleteOption, + reset, + resetPagination, +} = useArrayData('myKey', userOptions); +``` + +## Parameters + +### `key` + +- **Type:** `String` +- **Description:** A unique key to identify the data store. + +### `userOptions` + +- **Type:** `Object` +- **Description:** An object containing user-defined options for configuring the data store. + +## Methods + +### `fetch` + +Fetches data from the server. + +#### Parameters + +- **`options`** : An object with the following properties: +- `append` (Boolean): Whether to append the fetched data to the existing data. +- `updateRouter` (Boolean): Whether to update the router with the current filter. + +#### Returns + +- **`Promise`** : A promise that resolves with the fetched data. + +### `applyFilter` + +Applies a filter to the data. + +#### Parameters + +- **`filter`** : An object containing the filter criteria. +- **`params`** : Additional parameters for the filter. +- **`fetchOptions`** : Options for the fetch method. + +#### Returns + +- **`Promise`** : A promise that resolves with the filtered data. + +### `addFilter` + +Adds a filter to the existing filters. + +#### Parameters + +- **`filter`** : An object containing the filter criteria. +- **`params`** : Additional parameters for the filter. + +#### Returns + +- **`Promise`** : A promise that resolves with the updated filter and parameters. + +### `getCurrentFilter` + +Gets the current filter applied to the data. + +#### Returns + +- **`Object`** : The current filter and parameters. + +### `setCurrentFilter` + +Sets the current filter for the data. + +#### Returns + +- **`Object`** : The current filter and parameters. + +### `addFilterWhere` + +Adds a `where` clause to the existing filters. + +#### Parameters + +- **`where`** : An object containing the `where` clause. + +#### Returns + +- **`Promise`** : A promise that resolves when the filter is applied. + +### `addOrder` + +Adds an order to the existing orders. + +#### Parameters + +- **`field`** : The field to order by. +- **`direction`** : The direction of the order (`ASC` or `DESC`). + +#### Returns + +- **`Promise`** : A promise that resolves with the updated order. + +### `deleteOrder` + +Deletes an order from the existing orders. + +#### Parameters + +- **`field`** : The field to delete the order for. + +#### Returns + +- **`Promise`** : A promise that resolves when the order is deleted. + +### `refresh` + +Refreshes the data by re-fetching it from the server. + +#### Returns + +- **`Promise`** : A promise that resolves with the refreshed data. + +### `destroy` + +Destroys the data store for the given key. + +### `loadMore` + +Loads more data by incrementing the pagination. + +#### Returns + +- **`Promise`** : A promise that resolves with the additional data. + +### `updateStateParams` + +Updates the state parameters with the given data. + +#### Parameters + +- **`data`** : The data to update the state parameters with. + +### `deleteOption` + +Deletes an option from the store. + +#### Parameters + +- **`option`** : The option to delete. + +### `reset` + +Resets the store to its default state. + +#### Parameters + +- **`opts`** : An array of options to reset. + +### `resetPagination` + +Resets the pagination for the store. + +## Computed Properties + +### `totalRows` + +- **Description:** The total number of rows in the data. +- **Type:** `Number` + +### `isLoading` + +- **Description:** Whether the data is currently being loaded. +- **Type:** `Boolean` + +```vue + +``` + +``` + +```