# CameraScanner

The camera scanner uses the devices camera to scan and decode barcodes or QR codes. It displays a live feed with guidance markers for alignment and triggers actions within the app upon successful recognition.
### Camera scanner and data text example

```tsx
import React from 'react';
import {
  CameraScanner,
  Screen,
  Text,
  useScannerDataSubscription,
  reactExtension,
} from '@shopify/ui-extensions-react/point-of-sale';

const SmartGridModal = () => {
  const {data} = useScannerDataSubscription();

  return (
    <Screen
      name="CameraScanner"
      title="Camera Scanner Title"
    >
      <CameraScanner />
      <Text>{`Scanned data: ${data || ''}`}</Text>
    </Screen>
  );
};

export default reactExtension(
  'pos.home.modal.render',
  () => <SmartGridModal />,
);

```

```ts
import {
  CameraScanner,
  Screen,
  Text,
  Stack,
  extension,
} from '@shopify/ui-extensions/point-of-sale';

export default extension(
  'pos.home.modal.render',
  (root, api) => {
    const mainScreen = root.createComponent(
      Screen,
      {
        title: 'CameraScanner',
        name: 'Camera Scanner Title',
      },
    );

    const cameraScanner = root.createComponent(
      CameraScanner,
    );

    const text = root.createComponent(
      Text,
      null,
      'Scanned data: ',
    );

    mainScreen.append(cameraScanner);
    mainScreen.append(text);
    root.append(mainScreen);

    api.scanner.scannerDataSubscribable.subscribe(
      (data) => {
        text.replaceChildren(
          `Scanned data: ${data || ''}`,
        );
      },
    );
  },
);

```



## CameraScanner


### CameraScannerProps


### bannerProps

value: `CameraScannerBannerProps`



### CameraScannerBannerProps


### title

value: `string`

The title of the banner.

### variant

value: `BannerVariant`

The appearance of the banner.

### visible

value: `boolean`

The visibility state of the banner.

### BannerVariant


'confirmation' | 'alert' | 'error' | 'information'

## Related
- [Scanner API](/api/pos-ui-extensions/apis/scanner-api#examples)