{"id":22867551,"url":"https://github.com/indatawetrust/use-feathers","last_synced_at":"2025-05-05T19:18:49.209Z","repository":{"id":38172988,"uuid":"249811125","full_name":"indatawetrust/use-feathers","owner":"indatawetrust","description":"React bindings for FeathersJS","archived":false,"fork":false,"pushed_at":"2023-03-07T02:41:39.000Z","size":6146,"stargazers_count":9,"open_issues_count":27,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-05-05T19:18:38.823Z","etag":null,"topics":["feathersjs","react","react-context"],"latest_commit_sha":null,"homepage":"https://naughty-cray-bdab6d.netlify.app/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/indatawetrust.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-03-24T20:29:56.000Z","updated_at":"2023-08-24T12:15:10.000Z","dependencies_parsed_at":"2024-12-13T12:32:13.948Z","dependency_job_id":"7ccb4a54-c5ee-447c-bdeb-baca4658bd2e","html_url":"https://github.com/indatawetrust/use-feathers","commit_stats":{"total_commits":31,"total_committers":4,"mean_commits":7.75,"dds":"0.16129032258064513","last_synced_commit":"a1e583918f1b0500cefeb11b3127bb5b9e7c03ad"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/indatawetrust%2Fuse-feathers","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/indatawetrust%2Fuse-feathers/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/indatawetrust%2Fuse-feathers/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/indatawetrust%2Fuse-feathers/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/indatawetrust","download_url":"https://codeload.github.com/indatawetrust/use-feathers/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252561058,"owners_count":21768063,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["feathersjs","react","react-context"],"created_at":"2024-12-13T12:27:59.982Z","updated_at":"2025-05-05T19:18:49.162Z","avatar_url":"https://github.com/indatawetrust.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://travis-ci.org/indatawetrust/use-feathers.svg?branch=master)](https://travis-ci.org/indatawetrust/use-feathers)\n\nThis package is based on feathers js client packages. For more detailed information https://docs.feathersjs.com/api/client.html\n\nSample project https://github.com/indatawetrust/use-feathers/tree/master/demo. You can try it at https://naughty-cray-bdab6d.netlify.app/\n\n## Installation\n\n```\nnpm install @cond/use-feathers -S\n```\n\n### feathers client\n```\nnpm i @feathersjs/feathers @feathersjs/socketio-client socket.io-client @feathersjs/authentication-client -S\n```\n\n```js\nimport io from 'socket.io-client';\nimport feathers from '@feathersjs/feathers';\nimport socketio from '@feathersjs/socketio-client';\nimport auth from '@feathersjs/authentication-client';\n\nconst URL = process.env.REACT_APP_URL;\n\nconst socket = io(URL);\nconst feathersClient = feathers()\n  .configure(socketio(socket))\n  .configure(auth({\n    storage: window.localStorage\n  }));\n\nexport default feathersClient;\n```\n\n#### FeathersProvider\n\n#### Props\n\n**client** feathersjs client\n\n**initialServices** services to be used in the application. state values are created.\n\n**realtime** it is off by default. In case you open it, the state is updated for the relevant service according to the service events. https://docs.feathersjs.com/api/events.html#service-events\n\n```jsx\nimport React from 'react'\nimport ReactDOM from 'react-dom'\n\nimport { FeathersProvider } from '@cond/use-feathers'\nimport feathersClient from './feathersClient'\n\nimport App from './App'\n\nconst rootElement = document.getElementById('root')\nReactDOM.render(\n  \u003cFeathersProvider\n    client={feathersClient}\n    initialServices={['todo']}\n  \u003e\n    \u003cApp /\u003e\n  \u003c/FeathersProvider\u003e,\n  rootElement\n)\n```\n### useFeathers\n```js\nconst { login } = useFeathers();\n```\n##### login\n\n```jsx\nimport React from \"react\";\nimport { Form, Input, Button, Checkbox, message } from \"antd\";\nimport { useFeathers } from \"@cond/use-feathers\";\n\nconst layout = {\n  labelCol: { span: 8 },\n  wrapperCol: { span: 6 },\n};\nconst tailLayout = {\n  wrapperCol: { offset: 8, span: 6 },\n};\n\nconst Login = () =\u003e {\n  const { login } = useFeathers();\n  const onFinish = (values) =\u003e {\n    login(values)\n      .then(() =\u003e {\n        message.success('login successful');\n      });\n      .catch((error) =\u003e {\n        message.error(error.message);\n      });\n  };\n\n  return (\n    \u003cForm\n      {...layout}\n      name=\"basic\"\n      initialValues={{ remember: true }}\n      onFinish={onFinish}\n      onFinishFailed={onFinishFailed}\n    \u003e\n      \u003cForm.Item\n        label=\"Email\"\n        name=\"email\"\n        type=\"email\"\n        rules={[{ required: true, message: \"Please input your email!\" }]}\n      \u003e\n        \u003cInput /\u003e\n      \u003c/Form.Item\u003e\n      \u003cForm.Item\n        label=\"Password\"\n        name=\"password\"\n        rules={[{ required: true, message: \"Please input your password!\" }]}\n      \u003e\n        \u003cInput.Password /\u003e\n      \u003c/Form.Item\u003e\n      \u003cForm.Item {...tailLayout} name=\"remember\" valuePropName=\"checked\"\u003e\n        \u003cCheckbox\u003eRemember me\u003c/Checkbox\u003e\n      \u003c/Form.Item\u003e\n      \u003cForm.Item {...tailLayout}\u003e\n        \u003cButton type=\"primary\" htmlType=\"submit\"\u003e\n          Submit\n        \u003c/Button\u003e\n      \u003c/Form.Item\u003e\n    \u003c/Form\u003e\n  );\n};\n\nexport default Login;\n```\n\n## crud hooks\n```js\nconst { useFind, useCreate, useUpdate, useRemove, usePatch } = useFeathers();\n```\n\nAll hooks return three parameters. Action, state and resetState.\n\n**state**\ninitial state\n```js\n{\n  isPending: false,\n  isLoaded: false,\n  error: null,\n  data: null,\n}\n```\n\n**action**\nFor detailed information about actions and parameters they take: https://docs.feathersjs.com/guides/basics/services.html#service-methods\n\n**resetState**\nreturns to the state initial value\n\n### useCreate\n```js\nconst { createAction, state: createState, resetCreateState } = useCreate('todo');\n```\n\n### useFind\n```js\nconst { findAction, state: findState, resetFindState } = useFind('todo');\n```\n\n### useGet\n```js\nconst { getAction, state: getState, resetGetState } = useGet('todo');\n```\n\n### useUpdate\n```js\nconst { updateAction, state: updateState, resetUpdateState } = useUpdate('todo');\n```\n\n### usePatch\n```js\nconst { patchAction, state: patchState, resetPatchState } = usePatch('todo');\n```\n\n### useRemove\n```js\nconst { removeAction, state: removeState, resetRemoveState } = useRemove('todo');\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Findatawetrust%2Fuse-feathers","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Findatawetrust%2Fuse-feathers","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Findatawetrust%2Fuse-feathers/lists"}