jemise111 / react-native-swipe-list-view

A React Native ListView component with rows that swipe open and closed
https://www.npmjs.com/package/react-native-swipe-list-view
MIT License
2.78k stars 528 forks source link

Open row by key #631

Open nikola166 opened 5 months ago

nikola166 commented 5 months ago

Hi! ๐Ÿ‘‹

Firstly, thanks for your work on this project! ๐Ÿ™‚

Today I used patch-package to patch react-native-swipe-list-view@3.2.9 for the project I'm working on.

Here is the diff that solved my problem:

diff --git a/node_modules/react-native-swipe-list-view/components/SwipeListView.js b/node_modules/react-native-swipe-list-view/components/SwipeListView.js
index 07dc767..34cd0d0 100644
--- a/node_modules/react-native-swipe-list-view/components/SwipeListView.js
+++ b/node_modules/react-native-swipe-list-view/components/SwipeListView.js
@@ -172,6 +172,18 @@ class SwipeListView extends PureComponent {
         });
     }

+    manuallyOpenRow(toValue, key) {
+        Object.keys(this._rows).forEach(rowKey => {
+            if (key != rowKey) {
+                return;
+            }
+            const row = this._rows[rowKey];
+            if (row && row.manuallySwipeRow) {
+                row.manuallySwipeRow(toValue);
+            }
+        });
+    }
+
     renderCell(VisibleComponent, HiddenComponent, key, item, shouldPreviewRow) {
         if (!HiddenComponent) {
             return React.cloneElement(VisibleComponent, {
diff --git a/node_modules/react-native-swipe-list-view/types/index.d.ts b/node_modules/react-native-swipe-list-view/types/index.d.ts
index bd71cf6..39d5600 100644
--- a/node_modules/react-native-swipe-list-view/types/index.d.ts
+++ b/node_modules/react-native-swipe-list-view/types/index.d.ts
@@ -502,5 +502,7 @@ interface IUseFlatListProps<T> extends FlatListPropsOverride<T>, IPropsSwipeList

 export class SwipeListView<T> extends Component<Partial<IUseSectionListProps<T>> | Partial<IUseFlatListProps<T>>> {
    closeAllOpenRows: () => void;
+   manuallyOpenAllRows: (toValue: number) => void;
+   manuallyOpenRow: (toValue: number, key: string) => void;
    render(): JSX.Element;
 }

This issue body was partially generated by patch-package.