{"id":13422047,"url":"https://github.com/marekrozmus/react-swipeable-list","last_synced_at":"2025-03-15T10:31:38.098Z","repository":{"id":44638975,"uuid":"335968124","full_name":"marekrozmus/react-swipeable-list","owner":"marekrozmus","description":"Swipeable list component for React supporting several behaviours (e.g. iOS)","archived":false,"fork":false,"pushed_at":"2024-10-11T18:31:01.000Z","size":2322,"stargazers_count":119,"open_issues_count":10,"forks_count":20,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-03-10T19:12:41.877Z","etag":null,"topics":["android","component","ios","javascript","list","listview","mobile","react","swipe","swipe-actions","swipe-to-delete","swipeable","touchscreen"],"latest_commit_sha":null,"homepage":"https://marekrozmus.github.io/react-swipeable-list/","language":"JavaScript","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/marekrozmus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":["https://buymeacoffee.com/froostrat"]}},"created_at":"2021-02-04T13:49:33.000Z","updated_at":"2025-02-20T04:41:18.000Z","dependencies_parsed_at":"2024-01-25T04:47:35.494Z","dependency_job_id":"443d32ce-74d1-4bd3-9227-42e26994140d","html_url":"https://github.com/marekrozmus/react-swipeable-list","commit_stats":{"total_commits":116,"total_committers":6,"mean_commits":"19.333333333333332","dds":"0.27586206896551724","last_synced_commit":"10ca0c66f7ec4aa4904a02e8dd197180dc56b125"},"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marekrozmus%2Freact-swipeable-list","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marekrozmus%2Freact-swipeable-list/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marekrozmus%2Freact-swipeable-list/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marekrozmus%2Freact-swipeable-list/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/marekrozmus","download_url":"https://codeload.github.com/marekrozmus/react-swipeable-list/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243719104,"owners_count":20336591,"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":["android","component","ios","javascript","list","listview","mobile","react","swipe","swipe-actions","swipe-to-delete","swipeable","touchscreen"],"created_at":"2024-07-30T23:00:36.136Z","updated_at":"2025-03-15T10:31:36.971Z","avatar_url":"https://github.com/marekrozmus.png","language":"JavaScript","funding_links":["https://buymeacoffee.com/froostrat","https://www.buymeacoffee.com/froostrat"],"categories":["UI Components"],"sub_categories":["Miscellaneous"],"readme":"\u003ch1 align=\"center\"\u003ereact-swipeable-list\u003c/h1\u003e\n\n\u003ch4 align=\"center\"\u003eA configurable react component to render list with swipeable items.\u003c/h4\u003e\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/main.gif\"\u003e\u003c/img\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#demo\"\u003eDemo\u003c/a\u003e •\n  \u003ca href=\"#installation\"\u003eInstallation\u003c/a\u003e •\n  \u003ca href=\"#usage\"\u003eUsage\u003c/a\u003e\n\u003c/p\u003e\n\n\u003chr /\u003e\n\nYou like it? \n[Buy me a coffee :)](https://www.buymeacoffee.com/froostrat) or a 🍺\n\n\u003chr /\u003e\n\n[![Actions Status](https://github.com/marekrozmus/react-swipeable-list/workflows/Node.js%20CI/badge.svg)](https://github.com/marekrozmus/react-swipeable-list/actions)\n[![codecov](https://codecov.io/gh/marekrozmus/react-swipeable-list/branch/main/graph/badge.svg?token=8P4356I2J0)](https://codecov.io/gh/marekrozmus/react-swipeable-list)\n![GitHub Release Date](https://img.shields.io/github/release-date/marekrozmus/react-swipeable-list)\n\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section --\u003e\n[![All Contributors](https://img.shields.io/badge/all_contributors-12-orange.svg?style=flat-square)](#contributors-)\n\u003c!-- ALL-CONTRIBUTORS-BADGE:END --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\n## React Swipeable List component\n\nA react component to render list with swipeable items. Items can have one or more actions on left (leading) and right (trailing) swipe and different behavior depending on props. [See examples](#type)\n\nThis repository contains new version of [sandstreamdev/react-swipeable-list/](https://github.com/sandstreamdev/react-swipeable-list). Whole component was reimplemented to support buttons in revealed content and different swipe behaviors. More information can be found in this issue: [Clarify relationship with @sandstreamdev/react-swipeable-list](https://github.com/marekrozmus/react-swipeable-list/issues/6)\n\n## Demo\n\nCheck [working example page](https://marekrozmus.github.io/react-swipeable-list/)\n\n[![Edit react-swipeable-list](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/s/github/marekrozmus/react-swipeable-list/tree/main/examples)\n\n## Installation\n\n```bash\nnpm install react-swipeable-list\n# or via yarn\nyarn add react-swipeable-list\n```\n\n## Usage\n\n```jsx\nimport {\n  LeadingActions,\n  SwipeableList,\n  SwipeableListItem,\n  SwipeAction,\n  TrailingActions,\n} from 'react-swipeable-list';\nimport 'react-swipeable-list/dist/styles.css';\n\nconst leadingActions = () =\u003e (\n  \u003cLeadingActions\u003e\n    \u003cSwipeAction onClick={() =\u003e console.info('swipe action triggered')}\u003e\n      Action name\n    \u003c/SwipeAction\u003e\n  \u003c/LeadingActions\u003e\n);\n\nconst trailingActions = () =\u003e (\n  \u003cTrailingActions\u003e\n    \u003cSwipeAction\n      destructive={true}\n      onClick={() =\u003e console.info('swipe action triggered')}\n    \u003e\n      Delete\n    \u003c/SwipeAction\u003e\n  \u003c/TrailingActions\u003e\n);\n\n\u003cSwipeableList\u003e\n  \u003cSwipeableListItem\n    leadingActions={leadingActions()}\n    trailingActions={trailingActions()}\n  \u003e\n    Item content\n  \u003c/SwipeableListItem\u003e\n\u003c/SwipeableList\u003e;\n```\n\n## SwipeableList Props\n\n### actionDelay\n\nType: `milliseconds` (optional, default: `0`)\n\nTime in milliseconds after which swipe action and animation should be called after trigggering swipe action.\n\nIt can be set for the whole list or for every item. See `actionDelay` for `SwipeableListItem`. Value from the `SwipeableListItem` takes precedence.\n\n### fullSwipe\n\nType: `boolean` (optional, default: `false`)\n\nChanges behavior of `IOS` list type.\nWhen `true` and swipe is done beyond `threshold` and released the action is triggered.\n\n\u003cimg src=\"docs/ios_fullswipe_on.gif\"\u003e\u003c/img\u003e\n\nWhen set to `false` actions are only opened and they need to be clicked to trigger action.\n\n\u003cimg src=\"docs/ios_fullswipe_off.gif\"\u003e\u003c/img\u003e\n\n### destructiveCallbackDelay\n\nType: `milliseconds` (optional, default: `1000`)\n\nTime in milliseconds after which swipe action should be called for `destructive` swipe action (item deletion).\n\nIt can be set for the whole list or for every item. See `destructiveCallbackDelay` for `SwipeableListItem`. Value from the `SwipeableListItem` takes precedence.\n\n### style\n\nType: `object` (optional, default: `undefined`)\n\nAdditional styles for list tag.\n\n### type\n\nType: `ListType (ANDROID | IOS | MS)` (optional, default: `ANDROID`)\n\nChanges behavior of swipeable items.\n\n#### `ANDROID`\n\n\u003cimg src=\"docs/android.gif\"\u003e\u003c/img\u003e\n\n#### `IOS`\n\n\u003cimg src=\"docs/main.gif\"\u003e\u003c/img\u003e\n\n#### `MS`\n\n\u003cimg src=\"docs/ms.gif\"\u003e\u003c/img\u003e\n\n### Tag\n\nType: `string` (optional, default: `div`)\n\nHTML tag that is used to create this component.\n\n### scrollStartThreshold\n\nType: `number` (optional, default: `10`)\n\nHow far in pixels scroll needs to be done to block swiping. After scrolling is started and goes beyond the threshold, swiping is blocked.\n\nIt can be set for the whole list or for every item. See `scrollStartThreshold` for `SwipeableListItem`. Value from the `SwipeableListItem` takes precedence.\n\n### swipeStartThreshold\n\nType: `number` (optional, default: `10`)\n\nHow far in pixels swipe needs to be done to start swiping on list item. After a swipe is started and goes beyond the threshold, scrolling is blocked.\n\nIt can be set for the whole list or for every item. See `swipeStartThreshold` for `SwipeableListItem`. Value from the `SwipeableListItem` takes precedence.\n\n### threshold\n\nType: `number` (optional, default: `0.5`)\n\nHow far swipe needs to be done to trigger attached action. `0.5` means that item needs to be swiped to half of its width, `0.25` - one-quarter of width.\n\nIt can be set for the whole list or for every item. See `threshold` for `SwipeableListItem`. Value from the `SwipeableListItem` takes precedence.\n\n## SwipeableListItem Props\n\n### actionDelay\n\nType: `milliseconds` (optional, default: `0`)\n\nTime in milliseconds after which swipe action and animation should be called after trigggering swipe action.\n\nIt can be set for the whole list or for every item. See `actionDelay` for `SwipeableList`. Value from the `SwipeableListItem` takes precedence.\n\n### blockSwipe\n\nType: `boolean` (optional, default: `false`)\n\nIf set to `true` all defined swipe actions are blocked.\n\n### destructiveCallbackDelay\n\nType: `milliseconds` (optional, default: `1000`)\n\nTime in milliseconds after which swipe action should be called for `destructive` swipe action (item deletion).\n\nIt can be set for the whole list or for every item. See `destructiveCallbackDelay` for `SwipeableList`. Value from the `SwipeableListItem` takes precedence.\n\n### leadingActions\n\nType: `LeadingActions component`\n\nContainer component that sets up correct props in `SwipeAction`. See examples for usage.\n\n### maxSwipe\n\nType: 'number' (optional, default: `1.0`)\n\nLimit the swipe to percent of width, e.g.: `0.5` will make swipe possible only for 50% of elements's width\n\n### onClick\n\nType: `function` (optional)\n\nCallback function that should be call after list item is clicked.\n\n### onSwipeStart\n\nType: `(dragDirection: string) =\u003e void`\n\nFired after swipe has started (after drag gesture passes the `swipeStartThreshold` distance in pixels). `dragDirection` can have value of `left` or `right`.\n\n### onSwipeEnd\n\nType: `(dragDirection: string) =\u003e void`\n\nFired after swipe has ended. `dragDirection` can have value of `left` or `right`.\n\n### onSwipeProgress\n\nType: `(progress: number, dragDirection: string) =\u003e void`\n\nFired every time swipe progress changes. The reported `progress` value is always an integer in range 0 to 100 inclusive. `dragDirection` can have value of `left` or `right`.\n\n### scrollStartThreshold\n\nType: `number` (default: `10`)\n\nHow far in pixels scroll needs to be done to block swiping. After scrolling is started and goes beyond the threshold, swiping is blocked.\n\nIt can be set for the whole list or for every item. See `scrollStartThreshold` for `SwipeableList`. Value from the `SwipeableListItem` takes precedence.\n\n### swipeStartThreshold\n\nType: `number` (default: `10`)\n\nHow far in pixels swipe needs to be done to start swiping on list item. After a swipe is started and goes beyond the threshold, scrolling is blocked.\n\nIt can be set for the whole list or for every item. See `swipeStartThreshold` for `SwipeableList`. Value from the `SwipeableListItem` takes precedence.\n\n### threshold\n\nType: `number` (default: `0.5`)\n\nHow far swipe needs to be done to trigger action. `0.5` means that item needs to be swiped to half of its width, `0.25` - one-quarter of width.\n\nIt can be set for the whole list or for every item. See `threshold` for `SwipeableList`. Value from the `SwipeableListItem` takes precedence.\n\n### trailingActions\n\nType: `TrailingActions component`\n\nContainer component that sets up correct props in `SwipeAction`. See examples for usage.\n\n## SwipeAction Props\n\n### destructive\n\nType: `boolean` (optional, default: `false`)\n\nIf set to `true` then remove animation is played and callback is called after `destructiveCallbackDelay`.\n\n### onClick\n\nType: `function` (required)\n\nCallback function that should be call after swipe action is triggered.\n\n### Tag\n\nType: `string` (optional, default: `span`)\n\nHTML tag that is used to create this component.\n\n## Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\u003ctable\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://marek-rozmus.medium.com/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/26272040?v=4?s=100\" width=\"100px;\" alt=\"Marek Rozmus\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eMarek Rozmus\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/marekrozmus/react-swipeable-list/commits?author=marekrozmus\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/marekrozmus/react-swipeable-list/commits?author=marekrozmus\" title=\"Documentation\"\u003e📖\u003c/a\u003e \u003ca href=\"https://github.com/marekrozmus/react-swipeable-list/commits?author=marekrozmus\" title=\"Tests\"\u003e⚠️\u003c/a\u003e \u003ca href=\"#example-marekrozmus\" title=\"Examples\"\u003e💡\u003c/a\u003e \u003ca href=\"#ideas-marekrozmus\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e \u003ca href=\"#maintenance-marekrozmus\" title=\"Maintenance\"\u003e🚧\u003c/a\u003e \u003ca href=\"#design-marekrozmus\" title=\"Design\"\u003e🎨\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://adamlaycock.ca\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/894797?v=4?s=100\" width=\"100px;\" alt=\"Adam Laycock\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eAdam Laycock\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/marekrozmus/react-swipeable-list/issues?q=author%3Aalaycock\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://www.rathes.me\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/6367520?v=4?s=100\" width=\"100px;\" alt=\"Rathes Sachchithananthan\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eRathes Sachchithananthan\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#ideas-rathesDot\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://nielssegers.be\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/10974647?v=4?s=100\" width=\"100px;\" alt=\"Niels\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eNiels\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#ideas-segersniels\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/harrisgca\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/5953554?v=4?s=100\" width=\"100px;\" alt=\"Glenn Harris\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eGlenn Harris\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#maintenance-harrisgca\" title=\"Maintenance\"\u003e🚧\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/v-zdorovcev\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/72477415?v=4?s=100\" width=\"100px;\" alt=\"Zdorovtsev Viktor\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eZdorovtsev Viktor\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#ideas-v-zdorovcev\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/elmesaoudee\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/18504843?v=4?s=100\" width=\"100px;\" alt=\"Zakaria EL Mesaoudi\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eZakaria EL Mesaoudi\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/marekrozmus/react-swipeable-list/commits?author=elmesaoudee\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://aron.codes\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/7697?v=4?s=100\" width=\"100px;\" alt=\"Aron Rotteveel\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eAron Rotteveel\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/marekrozmus/react-swipeable-list/commits?author=ArondeParon\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://www.linkedin.com/in/lucas-furini-42b144158/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/30937569?v=4?s=100\" width=\"100px;\" alt=\"Lucas Furini\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eLucas Furini\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#ideas-lucaskab\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/canberkakartuna\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/42892180?v=4?s=100\" width=\"100px;\" alt=\"Canberk Akartuna\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eCanberk Akartuna\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/marekrozmus/react-swipeable-list/issues?q=author%3Acanberkakartuna\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://www.linkedin.com/in/escobar-raul\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/15022274?v=4?s=100\" width=\"100px;\" alt=\"Raul Escobar\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eRaul Escobar\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/marekrozmus/react-swipeable-list/issues?q=author%3ARaulEscobarRivas\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/Starly26\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/86514705?v=4?s=100\" width=\"100px;\" alt=\"Starly26\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eStarly26\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/marekrozmus/react-swipeable-list/issues?q=author%3AStarly26\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003c!-- markdownlint-restore --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarekrozmus%2Freact-swipeable-list","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarekrozmus%2Freact-swipeable-list","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarekrozmus%2Freact-swipeable-list/lists"}