react-native-drawer-layout 4.1.8 → 4.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -25,9 +25,8 @@ export function Drawer({
25
25
  style
26
26
  }) {
27
27
  const windowDimensions = useWindowDimensions();
28
- const layout = customLayout ?? windowDimensions;
29
28
  const drawerWidth = getDrawerWidth({
30
- layout,
29
+ layout: customLayout ?? windowDimensions,
31
30
  drawerStyle
32
31
  });
33
32
  const progress = useFakeSharedValue(open ? 1 : 0);
@@ -52,22 +51,9 @@ export function Drawer({
52
51
  }, [onTransitionEndLatest, onTransitionStartLatest]);
53
52
  const isOpen = drawerType === 'permanent' ? true : open;
54
53
  const isRight = drawerPosition === 'right';
55
- let translateX = 0;
56
-
54
+ const translateX =
57
55
  // The drawer stays in place at open position when `drawerType` is `back`
58
- if (open || drawerType === 'back') {
59
- if (direction === 'rtl') {
60
- translateX = drawerPosition === 'left' ? drawerWidth - layout.width : 0;
61
- } else {
62
- translateX = drawerPosition === 'left' ? 0 : layout.width - drawerWidth;
63
- }
64
- } else {
65
- if (direction === 'rtl') {
66
- translateX = drawerPosition === 'left' ? -layout.width : drawerWidth;
67
- } else {
68
- translateX = drawerPosition === 'left' ? -drawerWidth : layout.width;
69
- }
70
- }
56
+ open || drawerType === 'back' ? drawerPosition === 'left' ? drawerWidth : -drawerWidth : 0;
71
57
  const drawerAnimatedStyle = drawerType !== 'permanent' ? {
72
58
  transition: 'transform 0.3s',
73
59
  transform: [{
@@ -82,43 +68,49 @@ export function Drawer({
82
68
  drawerType === 'front' ? 0 : drawerWidth * (drawerPosition === 'left' ? 1 : -1) : 0
83
69
  }]
84
70
  } : null;
85
- return /*#__PURE__*/_jsx(View, {
86
- style: [styles.container, style],
87
- children: /*#__PURE__*/_jsx(DrawerProgressContext.Provider, {
88
- value: progress,
89
- children: /*#__PURE__*/_jsxs(View, {
90
- style: [styles.main, {
91
- flexDirection: drawerType === 'permanent' ? isRight && direction === 'ltr' || !isRight && direction === 'rtl' ? 'row' : 'row-reverse' : 'row'
92
- }],
93
- children: [/*#__PURE__*/_jsxs(View, {
94
- style: [styles.content, contentAnimatedStyle],
95
- children: [/*#__PURE__*/_jsx(View, {
96
- "aria-hidden": isOpen && drawerType !== 'permanent',
97
- style: styles.content,
98
- children: children
99
- }), drawerType !== 'permanent' ? /*#__PURE__*/_jsx(Overlay, {
100
- open: open,
101
- progress: progress,
102
- onPress: () => onClose(),
103
- style: overlayStyle,
104
- accessibilityLabel: overlayAccessibilityLabel
105
- }) : null]
106
- }), /*#__PURE__*/_jsx(View, {
107
- ref: drawerRef,
108
- style: [styles.drawer, {
109
- width: drawerWidth,
110
- position: drawerType === 'permanent' ? 'relative' : 'absolute',
111
- zIndex: drawerType === 'back' ? -1 : 0
112
- }, drawerAnimatedStyle, drawerStyle],
113
- children: renderDrawerContent()
114
- })]
115
- })
71
+ const drawerElement = /*#__PURE__*/_jsx(View, {
72
+ ref: drawerRef,
73
+ style: [styles.drawer, {
74
+ width: drawerWidth,
75
+ position: drawerType === 'permanent' ? 'relative' : 'absolute',
76
+ zIndex: drawerType === 'back' ? -1 : 1
77
+ }, drawerType !== 'permanent' ?
78
+ // Position drawer off-screen by default in closed state
79
+ // And add a translation only when drawer is open
80
+ // So changing position in closed state won't trigger a visible transition
81
+ drawerPosition === 'right' ? {
82
+ right: -drawerWidth
83
+ } : {
84
+ left: -drawerWidth
85
+ } : null, drawerAnimatedStyle, drawerStyle],
86
+ children: renderDrawerContent()
87
+ }, "drawer");
88
+ const mainContent = /*#__PURE__*/_jsxs(View, {
89
+ style: [styles.content, contentAnimatedStyle],
90
+ children: [/*#__PURE__*/_jsx(View, {
91
+ "aria-hidden": isOpen && drawerType !== 'permanent',
92
+ style: styles.content,
93
+ children: children
94
+ }), drawerType !== 'permanent' ? /*#__PURE__*/_jsx(Overlay, {
95
+ open: open,
96
+ progress: progress,
97
+ onPress: () => onClose(),
98
+ style: overlayStyle,
99
+ accessibilityLabel: overlayAccessibilityLabel
100
+ }) : null]
101
+ }, "content");
102
+ return /*#__PURE__*/_jsx(DrawerProgressContext.Provider, {
103
+ value: progress,
104
+ children: /*#__PURE__*/_jsxs(View, {
105
+ style: [styles.container, style],
106
+ children: [!isRight && drawerElement, mainContent, isRight && drawerElement]
116
107
  })
117
108
  });
118
109
  }
119
110
  const styles = StyleSheet.create({
120
111
  container: {
121
- flex: 1
112
+ flex: 1,
113
+ flexDirection: 'row'
122
114
  },
123
115
  drawer: {
124
116
  top: 0,
@@ -128,9 +120,6 @@ const styles = StyleSheet.create({
128
120
  },
129
121
  content: {
130
122
  flex: 1
131
- },
132
- main: {
133
- flex: 1
134
123
  }
135
124
  });
136
125
  //# sourceMappingURL=Drawer.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","StyleSheet","useWindowDimensions","View","useLatestCallback","DrawerProgressContext","getDrawerWidth","useFakeSharedValue","Overlay","jsx","_jsx","jsxs","_jsxs","Drawer","layout","customLayout","direction","drawerPosition","drawerStyle","drawerType","onClose","onTransitionStart","onTransitionEnd","open","overlayStyle","overlayAccessibilityLabel","renderDrawerContent","children","style","windowDimensions","drawerWidth","progress","useEffect","value","drawerRef","useRef","onTransitionStartLatest","onTransitionEndLatest","element","current","addEventListener","removeEventListener","isOpen","isRight","translateX","width","drawerAnimatedStyle","transition","transform","contentAnimatedStyle","styles","container","Provider","main","flexDirection","content","onPress","accessibilityLabel","ref","drawer","position","zIndex","create","flex","top","bottom","maxWidth","backgroundColor"],"sourceRoot":"../../../src","sources":["views/Drawer.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","StyleSheet","useWindowDimensions","View","useLatestCallback","DrawerProgressContext","getDrawerWidth","useFakeSharedValue","Overlay","jsx","_jsx","jsxs","_jsxs","Drawer","layout","customLayout","direction","drawerPosition","drawerStyle","drawerType","onClose","onTransitionStart","onTransitionEnd","open","overlayStyle","overlayAccessibilityLabel","renderDrawerContent","children","style","windowDimensions","drawerWidth","progress","useEffect","value","drawerRef","useRef","onTransitionStartLatest","onTransitionEndLatest","element","current","addEventListener","removeEventListener","isOpen","isRight","translateX","drawerAnimatedStyle","transition","transform","contentAnimatedStyle","drawerElement","ref","styles","drawer","width","position","zIndex","right","left","mainContent","content","onPress","accessibilityLabel","Provider","container","create","flex","flexDirection","top","bottom","maxWidth","backgroundColor"],"sourceRoot":"../../../src","sources":["views/Drawer.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,UAAU,EAAEC,mBAAmB,EAAEC,IAAI,QAAQ,cAAc;AACpE,OAAOC,iBAAiB,MAAM,qBAAqB;AAGnD,SAASC,qBAAqB,QAAQ,mCAAgC;AACtE,SAASC,cAAc,QAAQ,4BAAyB;AACxD,SAASC,kBAAkB,QAAQ,gCAA6B;AAChE,SAASC,OAAO,QAAQ,WAAW;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAEpC,OAAO,SAASC,MAAMA,CAAC;EACrBC,MAAM,EAAEC,YAAY;EACpBC,SAAS,GAAG,KAAK;EACjBC,cAAc,GAAGD,SAAS,KAAK,KAAK,GAAG,OAAO,GAAG,MAAM;EACvDE,WAAW;EACXC,UAAU,GAAG,OAAO;EACpBC,OAAO;EACPC,iBAAiB;EACjBC,eAAe;EACfC,IAAI;EACJC,YAAY;EACZC,yBAAyB;EACzBC,mBAAmB;EACnBC,QAAQ;EACRC;AACW,CAAC,EAAE;EACd,MAAMC,gBAAgB,GAAG3B,mBAAmB,CAAC,CAAC;EAE9C,MAAM4B,WAAW,GAAGxB,cAAc,CAAC;IACjCQ,MAAM,EAAEC,YAAY,IAAIc,gBAAgB;IACxCX;EACF,CAAC,CAAC;EAEF,MAAMa,QAAQ,GAAGxB,kBAAkB,CAACgB,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;EAEjDvB,KAAK,CAACgC,SAAS,CAAC,MAAM;IACpBD,QAAQ,CAACE,KAAK,GAAGV,IAAI,GAAG,CAAC,GAAG,CAAC;EAC/B,CAAC,EAAE,CAACA,IAAI,EAAEQ,QAAQ,CAAC,CAAC;EAEpB,MAAMG,SAAS,GAAGlC,KAAK,CAACmC,MAAM,CAAO,IAAI,CAAC;EAE1C,MAAMC,uBAAuB,GAAGhC,iBAAiB,CAAC,MAAM;IACtDiB,iBAAiB,GAAGE,IAAI,KAAK,KAAK,CAAC;EACrC,CAAC,CAAC;EAEF,MAAMc,qBAAqB,GAAGjC,iBAAiB,CAAC,MAAM;IACpDkB,eAAe,GAAGC,IAAI,KAAK,KAAK,CAAC;EACnC,CAAC,CAAC;EAEFvB,KAAK,CAACgC,SAAS,CAAC,MAAM;IACpB,MAAMM,OAAO,GAAGJ,SAAS,CAACK,OAAgC;IAE1DD,OAAO,EAAEE,gBAAgB,CAAC,iBAAiB,EAAEJ,uBAAuB,CAAC;IACrEE,OAAO,EAAEE,gBAAgB,CAAC,eAAe,EAAEH,qBAAqB,CAAC;IAEjE,OAAO,MAAM;MACXC,OAAO,EAAEG,mBAAmB,CAAC,iBAAiB,EAAEL,uBAAuB,CAAC;MACxEE,OAAO,EAAEG,mBAAmB,CAAC,eAAe,EAAEJ,qBAAqB,CAAC;IACtE,CAAC;EACH,CAAC,EAAE,CAACA,qBAAqB,EAAED,uBAAuB,CAAC,CAAC;EAEpD,MAAMM,MAAM,GAAGvB,UAAU,KAAK,WAAW,GAAG,IAAI,GAAGI,IAAI;EACvD,MAAMoB,OAAO,GAAG1B,cAAc,KAAK,OAAO;EAE1C,MAAM2B,UAAU;EACd;EACArB,IAAI,IAAIJ,UAAU,KAAK,MAAM,GACzBF,cAAc,KAAK,MAAM,GACvBa,WAAW,GACX,CAACA,WAAW,GACd,CAAC;EAEP,MAAMe,mBAAmB,GACvB1B,UAAU,KAAK,WAAW,GACtB;IACE2B,UAAU,EAAE,gBAAgB;IAC5BC,SAAS,EAAE,CAAC;MAAEH;IAAW,CAAC;EAC5B,CAAC,GACD,IAAI;EAEV,MAAMI,oBAAoB,GACxB7B,UAAU,KAAK,WAAW,GACtB;IACE2B,UAAU,EAAE,gBAAgB;IAC5BC,SAAS,EAAE,CACT;MACEH,UAAU,EAAErB,IAAI;MACZ;MACAJ,UAAU,KAAK,OAAO,GACpB,CAAC,GACDW,WAAW,IAAIb,cAAc,KAAK,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GACpD;IACN,CAAC;EAEL,CAAC,GACD,IAAI;EAEV,MAAMgC,aAAa,gBACjBvC,IAAA,CAACP,IAAI;IAEH+C,GAAG,EAAEhB,SAAU;IACfN,KAAK,EAAE,CACLuB,MAAM,CAACC,MAAM,EACb;MACEC,KAAK,EAAEvB,WAAW;MAClBwB,QAAQ,EAAEnC,UAAU,KAAK,WAAW,GAAG,UAAU,GAAG,UAAU;MAC9DoC,MAAM,EAAEpC,UAAU,KAAK,MAAM,GAAG,CAAC,CAAC,GAAG;IACvC,CAAC,EACDA,UAAU,KAAK,WAAW;IACtB;IACA;IACA;IACAF,cAAc,KAAK,OAAO,GACxB;MAAEuC,KAAK,EAAE,CAAC1B;IAAY,CAAC,GACvB;MAAE2B,IAAI,EAAE,CAAC3B;IAAY,CAAC,GACxB,IAAI,EACRe,mBAAmB,EACnB3B,WAAW,CACX;IAAAS,QAAA,EAEDD,mBAAmB,CAAC;EAAC,GArBlB,QAsBA,CACP;EAED,MAAMgC,WAAW,gBACf9C,KAAA,CAACT,IAAI;IAAeyB,KAAK,EAAE,CAACuB,MAAM,CAACQ,OAAO,EAAEX,oBAAoB,CAAE;IAAArB,QAAA,gBAChEjB,IAAA,CAACP,IAAI;MACH,eAAauC,MAAM,IAAIvB,UAAU,KAAK,WAAY;MAClDS,KAAK,EAAEuB,MAAM,CAACQ,OAAQ;MAAAhC,QAAA,EAErBA;IAAQ,CACL,CAAC,EACNR,UAAU,KAAK,WAAW,gBACzBT,IAAA,CAACF,OAAO;MACNe,IAAI,EAAEA,IAAK;MACXQ,QAAQ,EAAEA,QAAS;MACnB6B,OAAO,EAAEA,CAAA,KAAMxC,OAAO,CAAC,CAAE;MACzBQ,KAAK,EAAEJ,YAAa;MACpBqC,kBAAkB,EAAEpC;IAA0B,CAC/C,CAAC,GACA,IAAI;EAAA,GAfA,SAgBJ,CACP;EAED,oBACEf,IAAA,CAACL,qBAAqB,CAACyD,QAAQ;IAAC7B,KAAK,EAAEF,QAAS;IAAAJ,QAAA,eAC9Cf,KAAA,CAACT,IAAI;MAACyB,KAAK,EAAE,CAACuB,MAAM,CAACY,SAAS,EAAEnC,KAAK,CAAE;MAAAD,QAAA,GACpC,CAACgB,OAAO,IAAIM,aAAa,EACzBS,WAAW,EACXf,OAAO,IAAIM,aAAa;IAAA,CACrB;EAAC,CACuB,CAAC;AAErC;AAEA,MAAME,MAAM,GAAGlD,UAAU,CAAC+D,MAAM,CAAC;EAC/BD,SAAS,EAAE;IACTE,IAAI,EAAE,CAAC;IACPC,aAAa,EAAE;EACjB,CAAC;EACDd,MAAM,EAAE;IACNe,GAAG,EAAE,CAAC;IACNC,MAAM,EAAE,CAAC;IACTC,QAAQ,EAAE,MAAM;IAChBC,eAAe,EAAE;EACnB,CAAC;EACDX,OAAO,EAAE;IACPM,IAAI,EAAE;EACR;AACF,CAAC,CAAC","ignoreList":[]}
@@ -31,7 +31,8 @@ export function Overlay({
31
31
  onPress: onPress,
32
32
  style: styles.pressable,
33
33
  role: "button",
34
- "aria-label": accessibilityLabel
34
+ "aria-label": accessibilityLabel,
35
+ accessible: true
35
36
  })
36
37
  });
37
38
  }
@@ -1 +1 @@
1
- {"version":3,"names":["Pressable","StyleSheet","Animated","useAnimatedProps","useAnimatedStyle","jsx","_jsx","PROGRESS_EPSILON","Overlay","progress","onPress","style","accessibilityLabel","rest","animatedStyle","opacity","value","animatedProps","active","View","styles","overlay","children","pressable","role","create","absoluteFillObject","backgroundColor","flex","pointerEvents"],"sourceRoot":"../../../src","sources":["views/Overlay.native.tsx"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,UAAU,QAAQ,cAAc;AACpD,OAAOC,QAAQ,IACbC,gBAAgB,EAChBC,gBAAgB,QACX,yBAAyB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAIjC,MAAMC,gBAAgB,GAAG,IAAI;AAE7B,OAAO,SAASC,OAAOA,CAAC;EACtBC,QAAQ;EACRC,OAAO;EACPC,KAAK;EACLC,kBAAkB,GAAG,cAAc;EACnC,GAAGC;AACS,CAAC,EAAE;EACf,MAAMC,aAAa,GAAGV,gBAAgB,CAAC,MAAM;IAC3C,OAAO;MACLW,OAAO,EAAEN,QAAQ,CAACO;IACpB,CAAC;EACH,CAAC,EAAE,CAACP,QAAQ,CAAC,CAAC;EAEd,MAAMQ,aAAa,GAAGd,gBAAgB,CAAC,MAAM;IAC3C,MAAMe,MAAM,GAAGT,QAAQ,CAACO,KAAK,GAAGT,gBAAgB;IAEhD,OAAO;MACL,eAAe,EAAEW,MAAM,GAAG,MAAM,GAAG,MAAM;MACzC,aAAa,EAAE,CAACA;IAClB,CAAC;EACH,CAAC,EAAE,CAACT,QAAQ,CAAC,CAAC;EAEd,oBACEH,IAAA,CAACJ,QAAQ,CAACiB,IAAI;IAAA,GACRN,IAAI;IACRF,KAAK,EAAE,CAACS,MAAM,CAACC,OAAO,EAAEP,aAAa,EAAEH,KAAK,CAAE;IAC9CM,aAAa,EAAEA,aAAc;IAAAK,QAAA,eAE7BhB,IAAA,CAACN,SAAS;MACRU,OAAO,EAAEA,OAAQ;MACjBC,KAAK,EAAES,MAAM,CAACG,SAAU;MACxBC,IAAI,EAAC,QAAQ;MACb,cAAYZ;IAAmB,CAChC;EAAC,CACW,CAAC;AAEpB;AAEA,MAAMQ,MAAM,GAAGnB,UAAU,CAACwB,MAAM,CAAC;EAC/BJ,OAAO,EAAE;IACP,GAAGpB,UAAU,CAACyB,kBAAkB;IAChCC,eAAe,EAAE;EACnB,CAAC;EACDJ,SAAS,EAAE;IACTK,IAAI,EAAE,CAAC;IACPC,aAAa,EAAE;EACjB;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Pressable","StyleSheet","Animated","useAnimatedProps","useAnimatedStyle","jsx","_jsx","PROGRESS_EPSILON","Overlay","progress","onPress","style","accessibilityLabel","rest","animatedStyle","opacity","value","animatedProps","active","View","styles","overlay","children","pressable","role","accessible","create","absoluteFillObject","backgroundColor","flex","pointerEvents"],"sourceRoot":"../../../src","sources":["views/Overlay.native.tsx"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,UAAU,QAAQ,cAAc;AACpD,OAAOC,QAAQ,IACbC,gBAAgB,EAChBC,gBAAgB,QACX,yBAAyB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAIjC,MAAMC,gBAAgB,GAAG,IAAI;AAE7B,OAAO,SAASC,OAAOA,CAAC;EACtBC,QAAQ;EACRC,OAAO;EACPC,KAAK;EACLC,kBAAkB,GAAG,cAAc;EACnC,GAAGC;AACS,CAAC,EAAE;EACf,MAAMC,aAAa,GAAGV,gBAAgB,CAAC,MAAM;IAC3C,OAAO;MACLW,OAAO,EAAEN,QAAQ,CAACO;IACpB,CAAC;EACH,CAAC,EAAE,CAACP,QAAQ,CAAC,CAAC;EAEd,MAAMQ,aAAa,GAAGd,gBAAgB,CAAC,MAAM;IAC3C,MAAMe,MAAM,GAAGT,QAAQ,CAACO,KAAK,GAAGT,gBAAgB;IAEhD,OAAO;MACL,eAAe,EAAEW,MAAM,GAAG,MAAM,GAAG,MAAM;MACzC,aAAa,EAAE,CAACA;IAClB,CAAC;EACH,CAAC,EAAE,CAACT,QAAQ,CAAC,CAAC;EAEd,oBACEH,IAAA,CAACJ,QAAQ,CAACiB,IAAI;IAAA,GACRN,IAAI;IACRF,KAAK,EAAE,CAACS,MAAM,CAACC,OAAO,EAAEP,aAAa,EAAEH,KAAK,CAAE;IAC9CM,aAAa,EAAEA,aAAc;IAAAK,QAAA,eAE7BhB,IAAA,CAACN,SAAS;MACRU,OAAO,EAAEA,OAAQ;MACjBC,KAAK,EAAES,MAAM,CAACG,SAAU;MACxBC,IAAI,EAAC,QAAQ;MACb,cAAYZ,kBAAmB;MAC/Ba,UAAU;IAAA,CACX;EAAC,CACW,CAAC;AAEpB;AAEA,MAAML,MAAM,GAAGnB,UAAU,CAACyB,MAAM,CAAC;EAC/BL,OAAO,EAAE;IACP,GAAGpB,UAAU,CAAC0B,kBAAkB;IAChCC,eAAe,EAAE;EACnB,CAAC;EACDL,SAAS,EAAE;IACTM,IAAI,EAAE,CAAC;IACPC,aAAa,EAAE;EACjB;AACF,CAAC,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"Drawer.d.ts","sourceRoot":"","sources":["../../../../src/views/Drawer.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAM5C,wBAAgB,MAAM,CAAC,EACrB,MAAM,EAAE,YAAY,EACpB,SAAiB,EACjB,cAAuD,EACvD,WAAW,EACX,UAAoB,EACpB,OAAO,EACP,iBAAiB,EACjB,eAAe,EACf,IAAI,EACJ,YAAY,EACZ,yBAAyB,EACzB,mBAAmB,EACnB,QAAQ,EACR,KAAK,GACN,EAAE,WAAW,2CAoIb"}
1
+ {"version":3,"file":"Drawer.d.ts","sourceRoot":"","sources":["../../../../src/views/Drawer.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAM5C,wBAAgB,MAAM,CAAC,EACrB,MAAM,EAAE,YAAY,EACpB,SAAiB,EACjB,cAAuD,EACvD,WAAW,EACX,UAAoB,EACpB,OAAO,EACP,iBAAiB,EACjB,eAAe,EACf,IAAI,EACJ,YAAY,EACZ,yBAAyB,EACzB,mBAAmB,EACnB,QAAQ,EACR,KAAK,GACN,EAAE,WAAW,2CAgIb"}
@@ -1 +1 @@
1
- {"version":3,"file":"Overlay.native.d.ts","sourceRoot":"","sources":["../../../../src/views/Overlay.native.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAI7C,wBAAgB,OAAO,CAAC,EACtB,QAAQ,EACR,OAAO,EACP,KAAK,EACL,kBAAmC,EACnC,GAAG,IAAI,EACR,EAAE,YAAY,2CA8Bd"}
1
+ {"version":3,"file":"Overlay.native.d.ts","sourceRoot":"","sources":["../../../../src/views/Overlay.native.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAI7C,wBAAgB,OAAO,CAAC,EACtB,QAAQ,EACR,OAAO,EACP,KAAK,EACL,kBAAmC,EACnC,GAAG,IAAI,EACR,EAAE,YAAY,2CA+Bd"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "react-native-drawer-layout",
3
3
  "description": "Drawer component for React Native",
4
- "version": "4.1.8",
4
+ "version": "4.1.10",
5
5
  "keywords": [
6
6
  "react-native-component",
7
7
  "react-component",
@@ -75,5 +75,5 @@
75
75
  ]
76
76
  ]
77
77
  },
78
- "gitHead": "09d65bcdc908883c8cdd1b93fde19cec4b799ad6"
78
+ "gitHead": "13e3ced5ee8d5c6fd1ac124ad05d8841da2f8a2a"
79
79
  }
@@ -26,8 +26,10 @@ export function Drawer({
26
26
  }: DrawerProps) {
27
27
  const windowDimensions = useWindowDimensions();
28
28
 
29
- const layout = customLayout ?? windowDimensions;
30
- const drawerWidth = getDrawerWidth({ layout, drawerStyle });
29
+ const drawerWidth = getDrawerWidth({
30
+ layout: customLayout ?? windowDimensions,
31
+ drawerStyle,
32
+ });
31
33
 
32
34
  const progress = useFakeSharedValue(open ? 1 : 0);
33
35
 
@@ -60,22 +62,13 @@ export function Drawer({
60
62
  const isOpen = drawerType === 'permanent' ? true : open;
61
63
  const isRight = drawerPosition === 'right';
62
64
 
63
- let translateX = 0;
64
-
65
- // The drawer stays in place at open position when `drawerType` is `back`
66
- if (open || drawerType === 'back') {
67
- if (direction === 'rtl') {
68
- translateX = drawerPosition === 'left' ? drawerWidth - layout.width : 0;
69
- } else {
70
- translateX = drawerPosition === 'left' ? 0 : layout.width - drawerWidth;
71
- }
72
- } else {
73
- if (direction === 'rtl') {
74
- translateX = drawerPosition === 'left' ? -layout.width : drawerWidth;
75
- } else {
76
- translateX = drawerPosition === 'left' ? -drawerWidth : layout.width;
77
- }
78
- }
65
+ const translateX =
66
+ // The drawer stays in place at open position when `drawerType` is `back`
67
+ open || drawerType === 'back'
68
+ ? drawerPosition === 'left'
69
+ ? drawerWidth
70
+ : -drawerWidth
71
+ : 0;
79
72
 
80
73
  const drawerAnimatedStyle =
81
74
  drawerType !== 'permanent'
@@ -102,64 +95,68 @@ export function Drawer({
102
95
  }
103
96
  : null;
104
97
 
105
- return (
106
- <View style={[styles.container, style]}>
107
- <DrawerProgressContext.Provider value={progress}>
108
- <View
109
- style={[
110
- styles.main,
111
- {
112
- flexDirection:
113
- drawerType === 'permanent'
114
- ? (isRight && direction === 'ltr') ||
115
- (!isRight && direction === 'rtl')
116
- ? 'row'
117
- : 'row-reverse'
118
- : 'row',
119
- },
120
- ]}
121
- >
122
- <View style={[styles.content, contentAnimatedStyle]}>
123
- <View
124
- aria-hidden={isOpen && drawerType !== 'permanent'}
125
- style={styles.content}
126
- >
127
- {children}
128
- </View>
129
- {drawerType !== 'permanent' ? (
130
- <Overlay
131
- open={open}
132
- progress={progress}
133
- onPress={() => onClose()}
134
- style={overlayStyle}
135
- accessibilityLabel={overlayAccessibilityLabel}
136
- />
137
- ) : null}
138
- </View>
139
- <View
140
- ref={drawerRef}
141
- style={[
142
- styles.drawer,
143
- {
144
- width: drawerWidth,
145
- position: drawerType === 'permanent' ? 'relative' : 'absolute',
146
- zIndex: drawerType === 'back' ? -1 : 0,
147
- },
148
- drawerAnimatedStyle,
149
- drawerStyle,
150
- ]}
151
- >
152
- {renderDrawerContent()}
153
- </View>
154
- </View>
155
- </DrawerProgressContext.Provider>
98
+ const drawerElement = (
99
+ <View
100
+ key="drawer"
101
+ ref={drawerRef}
102
+ style={[
103
+ styles.drawer,
104
+ {
105
+ width: drawerWidth,
106
+ position: drawerType === 'permanent' ? 'relative' : 'absolute',
107
+ zIndex: drawerType === 'back' ? -1 : 1,
108
+ },
109
+ drawerType !== 'permanent'
110
+ ? // Position drawer off-screen by default in closed state
111
+ // And add a translation only when drawer is open
112
+ // So changing position in closed state won't trigger a visible transition
113
+ drawerPosition === 'right'
114
+ ? { right: -drawerWidth }
115
+ : { left: -drawerWidth }
116
+ : null,
117
+ drawerAnimatedStyle,
118
+ drawerStyle,
119
+ ]}
120
+ >
121
+ {renderDrawerContent()}
122
+ </View>
123
+ );
124
+
125
+ const mainContent = (
126
+ <View key="content" style={[styles.content, contentAnimatedStyle]}>
127
+ <View
128
+ aria-hidden={isOpen && drawerType !== 'permanent'}
129
+ style={styles.content}
130
+ >
131
+ {children}
132
+ </View>
133
+ {drawerType !== 'permanent' ? (
134
+ <Overlay
135
+ open={open}
136
+ progress={progress}
137
+ onPress={() => onClose()}
138
+ style={overlayStyle}
139
+ accessibilityLabel={overlayAccessibilityLabel}
140
+ />
141
+ ) : null}
156
142
  </View>
157
143
  );
144
+
145
+ return (
146
+ <DrawerProgressContext.Provider value={progress}>
147
+ <View style={[styles.container, style]}>
148
+ {!isRight && drawerElement}
149
+ {mainContent}
150
+ {isRight && drawerElement}
151
+ </View>
152
+ </DrawerProgressContext.Provider>
153
+ );
158
154
  }
159
155
 
160
156
  const styles = StyleSheet.create({
161
157
  container: {
162
158
  flex: 1,
159
+ flexDirection: 'row',
163
160
  },
164
161
  drawer: {
165
162
  top: 0,
@@ -170,7 +167,4 @@ const styles = StyleSheet.create({
170
167
  content: {
171
168
  flex: 1,
172
169
  },
173
- main: {
174
- flex: 1,
175
- },
176
170
  });
@@ -41,6 +41,7 @@ export function Overlay({
41
41
  style={styles.pressable}
42
42
  role="button"
43
43
  aria-label={accessibilityLabel}
44
+ accessible
44
45
  />
45
46
  </Animated.View>
46
47
  );