open-index/open-npm huggingface dataset:
npm package: @jaydhimar/react-native-pip
Description: A React Native library for Picture-in-Picture mode with support for both iOS and Android platforms.
Author: Jay Dhimar
Latest version: 1.0.0

# @jaydhimar/react-native-pip

A React Native library for Picture-in-Picture (PiP) mode support on iOS and Android. This library provides a simple interface to implement PiP functionality in your React Native applications.

## Features

✅ Custom Aspect Ratio Selection
✅ Auto-PiP on Home Button Press
✅ Detect if PiP is Supported
✅ Callbacks for PiP Events

## Requirements

- iOS 14.0 or later
- Android API level 26 (Android 8.0) or later
- React Native 0.63 or later

## Installation

```sh
npm install @jaydhimar/react-native-pip
# or
yarn add @jaydhimar/react-native-pip
```

### Android Setup

Add the following to your `AndroidManifest.xml` inside the `<activity>` tag that hosts your React Native content:

```xml
android:supportsPictureInPicture="true"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|screenLayout|uiMode"
```

### iOS Setup

Add the following to your `Info.plist`:

```xml
<key>UIBackgroundModes</key>
<array>
    <string>audio</string>
</array>
```

## Usage

```typescript
import PictureInPicture from 'react-native-pip';

// Check if PiP is supported on the device
const isPipSupported = await PictureInPicture.isPipSupported();

// Enter PiP mode with custom aspect ratio
await PictureInPicture.enterPictureInPicture({
  aspectRatio: {
    width: 16,
    height: 9
  },
  autoEnterOnBackground: true // iOS only
});

// Exit PiP mode
await PictureInPicture.exitPictureInPicture();

// Listen to PiP events
const unsubscribeEnter = PictureInPicture.addEventListener('onEnterPip', () => {
  console.log('Entered PiP mode');
});

const unsubscribeExit = PictureInPicture.addEventListener('onExitPip', () => {
  console.log('Exited PiP mode');
});

const unsubscribeError = PictureInPicture.addEventListener('onError', (error) => {
  console.error('PiP error:', error);
});

// Clean up event listeners
unsubscribeEnter();
unsubscribeExit();
unsubscribeError();
```

## API Reference

### Methods

#### `isPipSupported(): Promise<boolean>`
Checks if PiP mode is supported on the current device.

#### `enterPictureInPicture(config?: PipConfig): Promise<boolean>`
Enters PiP mode with optional configuration.

#### `exitPictureInPicture(): Promise<boolean>`
Exits PiP mode.

#### `addEventListener(eventType: string, listener: Function): () => void`
Adds an event listener for PiP events. Returns a function to remove the listener.

### Types

```typescript
interface PipConfig {
  aspectRatio?: {
    width: number;
    height: number;
  };
  autoEnterOnBackground?: boolean; // iOS only
}

type PipEvents = {
  onEnterPip?: () => void;
  onExitPip?: () => void;
  onError?: (error: string) => void;
}
```

## Contributing

See the [contributing guide](CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.

## License

MIT

---

Made with [create-react-native-library](https://github.com/callstack/react-native-builder-bob)
npm package: @jaydp17/eslint-config
Description: ESLint config for all my personal projects
Author: Jaydeep Solanki
Latest version: 0.1.1

# @jaydp17/eslint-config

ESLint config for all my personal projects

## ▶️ Usage

Install the config to you project

```sh
$ npm install --save-dev @jaydp17/eslint-config
```

Then, add @jaydp17/eslint-config to the `extends` array in your `.eslintrc.*`

```js
{
  "extends": ["@jaydp17"],
  // other stuff
}
```

## 💚 Credits

- [eslint-config-airbnb-base](https://www.npmjs.com/package/eslint-config-airbnb-base)
- [eslint-config-prettier](https://www.npmjs.com/package/eslint-config-prettier)

## 🎓 LICENSE

MIT