@applicaster/zapp-react-native-ui-components 13.0.5-rc.0 → 13.0.6-alpha.1053258310

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.
@@ -15,6 +15,7 @@ import { AccessibilityManager } from "@applicaster/zapp-react-native-utils/appUt
15
15
  import { styles } from "./styles";
16
16
 
17
17
  type Props = {
18
+ dataLength: number;
18
19
  item: ZappEntry;
19
20
  index: number;
20
21
  shouldScrollHorizontally: (arg1: [any]) => boolean | null | undefined;
@@ -70,6 +71,8 @@ type State = {
70
71
  };
71
72
 
72
73
  export class CellComponent extends React.Component<Props, State> {
74
+ accessibilityManager: AccessibilityManager;
75
+
73
76
  constructor(props) {
74
77
  super(props);
75
78
  this.onPress = this.onPress.bind(this);
@@ -83,6 +86,8 @@ export class CellComponent extends React.Component<Props, State> {
83
86
  this.state = {
84
87
  hasFocusableInside: props.CellRenderer.hasFocusableInside?.(props.item),
85
88
  };
89
+
90
+ this.accessibilityManager = AccessibilityManager.getInstance();
86
91
  }
87
92
 
88
93
  setScreenLayout(componentAnchorPointY, screenLayout) {
@@ -197,6 +202,7 @@ export class CellComponent extends React.Component<Props, State> {
197
202
  const {
198
203
  item,
199
204
  index,
205
+ dataLength,
200
206
  component,
201
207
  offsetUpdater,
202
208
  preferredFocus,
@@ -257,21 +263,22 @@ export class CellComponent extends React.Component<Props, State> {
257
263
  style={styles.baseCell}
258
264
  isFocusable={isFocusable}
259
265
  skipFocusManagerRegistration={skipFocusManagerRegistration}
266
+ {...this.accessibilityManager.getButtonAccessibilityProps(
267
+ item?.extensions?.accessibility?.label || item?.title
268
+ )}
260
269
  >
261
270
  {(focused, event) => {
262
271
  const isFocused = this.isCellFocused(focused);
263
272
 
264
273
  if (isFocused) {
265
- const accessibilityManager = AccessibilityManager.getInstance();
266
-
267
274
  const accessibilityTitle =
268
275
  item?.extensions?.accessibility?.label || item?.title || "";
269
276
 
270
277
  const accessibilityHint =
271
278
  item?.extensions?.accessibility?.hint || "";
272
279
 
273
- accessibilityManager.readText({
274
- text: `${accessibilityTitle} ${accessibilityHint}`,
280
+ this.accessibilityManager.readText({
281
+ text: `item ${index + 1} of ${dataLength} ${accessibilityTitle} ${accessibilityHint}`,
275
282
  });
276
283
  }
277
284
 
@@ -5,6 +5,7 @@ import { BaseFocusable } from "../BaseFocusable";
5
5
  import { focusManager } from "@applicaster/zapp-react-native-utils/appUtils/focusManager";
6
6
  import { LONG_KEY_PRESS_TIMEOUT } from "@applicaster/quick-brick-core/const";
7
7
  import { withFocusableContext } from "../../Contexts/FocusableGroupContext/withFocusableContext";
8
+ import { AccessibilityManager } from "@applicaster/zapp-react-native-utils/appUtils/accessibilityManager";
8
9
 
9
10
  type Props = {
10
11
  initialFocus?: boolean;
@@ -28,6 +29,7 @@ class Focusable extends BaseFocusable<Props> {
28
29
  isGroup: boolean;
29
30
  mouse: boolean;
30
31
  longPressTimeout = null;
32
+ accessibilityManager: AccessibilityManager;
31
33
 
32
34
  constructor(props) {
33
35
  super(props);
@@ -42,6 +44,8 @@ class Focusable extends BaseFocusable<Props> {
42
44
  this.resetLongPressTimeout = this.resetLongPressTimeout.bind(this);
43
45
  this.longPress = this.longPress.bind(this);
44
46
  this.press = this.press.bind(this);
47
+
48
+ this.accessibilityManager = AccessibilityManager.getInstance();
45
49
  }
46
50
 
47
51
  /**
@@ -128,6 +132,9 @@ class Focusable extends BaseFocusable<Props> {
128
132
  const id = this.getId();
129
133
  const focusableId = `focusable-${id}`;
130
134
 
135
+ const accessibilityProps =
136
+ this.accessibilityManager.getWebAccessibilityProps(this.props);
137
+
131
138
  return (
132
139
  <div
133
140
  id={focusableId}
@@ -140,6 +147,7 @@ class Focusable extends BaseFocusable<Props> {
140
147
  data-testid={focusableId}
141
148
  focused-teststate={focused ? "focused" : "default"}
142
149
  style={style}
150
+ {...accessibilityProps}
143
151
  >
144
152
  {children(focused, { mouse: this.mouse })}
145
153
  </div>
@@ -2,6 +2,19 @@
2
2
 
3
3
  exports[`<TextInputTv /> renders 1`] = `
4
4
  <input
5
+ accessibilityProps={
6
+ {
7
+ "accessibilityHint": "Enter text into Search",
8
+ "accessibilityLabel": "Search",
9
+ "accessibilityRole": "text",
10
+ "accessible": true,
11
+ "aria-description": "Enter text into Search",
12
+ "aria-label": "Search",
13
+ "aria-role": "text",
14
+ "role": "text",
15
+ "tabindex": 0,
16
+ }
17
+ }
5
18
  testID="TextInput-tv"
6
19
  />
7
20
  `;
@@ -4,6 +4,7 @@ import { Appearance, Platform, StyleSheet, TextInput } from "react-native";
4
4
  import { isFunction } from "@applicaster/zapp-react-native-utils/functionUtils";
5
5
  import { isWeb } from "@applicaster/zapp-react-native-utils/reactUtils";
6
6
  import { useIsRTL } from "@applicaster/zapp-react-native-utils/localizationUtils";
7
+ import { useAccessibilityManager } from "@applicaster/zapp-react-native-utils/appUtils/accessibilityManager/hooks";
7
8
 
8
9
  type Props = Partial<{
9
10
  style: any;
@@ -42,6 +43,8 @@ function TextInputTV(props: Props, ref) {
42
43
  const [colorScheme, setColorScheme] = useState(getInitialColorScheme());
43
44
  const isRTL = useIsRTL();
44
45
 
46
+ const accessibilityManager = useAccessibilityManager({});
47
+
45
48
  const onColorChange = useCallback(
46
49
  ({ colorScheme: color }) => {
47
50
  if (color !== colorScheme) {
@@ -153,6 +156,13 @@ function TextInputTV(props: Props, ref) {
153
156
  ])
154
157
  )(props);
155
158
 
159
+ const getAccessibilityProps = () => {
160
+ return {
161
+ accessibilityProps:
162
+ accessibilityManager.getInputAccessibilityProps("Search"),
163
+ };
164
+ };
165
+
156
166
  const inputProps = {
157
167
  ...getProps(),
158
168
  ...getStyle(),
@@ -161,6 +171,7 @@ function TextInputTV(props: Props, ref) {
161
171
  ...getSecureTextEntry(),
162
172
  ...getOnEndEditing(),
163
173
  ...getOnPress(),
174
+ ...getAccessibilityProps(),
164
175
  };
165
176
 
166
177
  if (
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@applicaster/zapp-react-native-ui-components",
3
- "version": "13.0.5-rc.0",
3
+ "version": "13.0.6-alpha.1053258310",
4
4
  "description": "Applicaster Zapp React Native ui components for the Quick Brick App",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
@@ -31,10 +31,10 @@
31
31
  "redux-mock-store": "^1.5.3"
32
32
  },
33
33
  "dependencies": {
34
- "@applicaster/applicaster-types": "13.0.5-rc.0",
35
- "@applicaster/zapp-react-native-bridge": "13.0.5-rc.0",
36
- "@applicaster/zapp-react-native-redux": "13.0.5-rc.0",
37
- "@applicaster/zapp-react-native-utils": "13.0.5-rc.0",
34
+ "@applicaster/applicaster-types": "13.0.6-alpha.1053258310",
35
+ "@applicaster/zapp-react-native-bridge": "13.0.6-alpha.1053258310",
36
+ "@applicaster/zapp-react-native-redux": "13.0.6-alpha.1053258310",
37
+ "@applicaster/zapp-react-native-utils": "13.0.6-alpha.1053258310",
38
38
  "promise": "^8.3.0",
39
39
  "react-router-native": "^5.1.2",
40
40
  "url": "^0.11.0",