open-index/open-npm huggingface dataset:
npm package: @humanz/react-native-tiktok
Description: Get authorized and fetch user profile, share videos
Author: Humanz
Latest version: 1.1.1

# React Native Tiktok

Get authorized and fetch user profile, share videos

# Install

```sh
npm install react-native-tiktok

cd ios && pod install
```

## Post-install

### iOS

Follow **Tiktok** quickstart [documentation](https://developers.tiktok.com/doc/getting-started-ios-quickstart-objective-c). Please note 1 and 2 steps are not required!!

Add `Privacy - Photo Library Additions Usage Description` permission to your **info.plist** in order to have an access to all your videos in your library.

## Troubleshooting

### iOS

If you see some of these errors
```
ld: warning: Could not find or use auto-linked library 'swiftCoreMIDI'
ld: warning: Could not find or use auto-linked library 'swiftUniformTypeIdentifiers'
ld: warning: Could not find or use auto-linked library 'swiftWebKit'
```
Then add a new **swift** file to your project and enable **bridging-header**.

# Usage

```js
import { init, auth, share, events } from "react-native-tiktok";

```

### `init(client_key)`
If you are on Android this methid is necessary to initialize tiktok sdk.
Please obtain a client key and secret from the developer portal on https://developers.tiktok.com under "My apps".

### `auth(callback)`
This guide details how to enable authentication from your app to TikTok. After successfully completing authentication with TikTok, users will be able to access basic user data (display name and avatar).

Callback function returns 3 types of response.

```js
  1. code - used to request user access token
  2. error 
  3. errMsg - If error is true then you can show what was the exact error
```

### `share(filePath, callback)`
**share** method allows users to share videos from your app to TikTok,
**filePath** shoud be valid mp4 video file path.
Callback function returns string type responses:

| Responses                                         |
| ------------------------------------------------- |
| **PUBLISHED**                                     |
| **NETWORK_ERROR**                                 |
| **SHARING_CANCELED**                              | 
| **SHARING_FAILED**                                |
| **UNSUPPORTED**                                   |

### `events`
Since Android side doesn't return response immediately, you need to set event listener in order to be informed when authentication or sharing processes are finished.

```js
useEffect(() => {
  const authListener = events.addListener('onAuthCompleted', (resp) => {
    // response contains returned status(errorCode) and code (if status is 0)
    // you can check it here https://developers.tiktok.com/doc/getting-started-android-handling-errors
  });

  const shareListener = events.addListener('onShareCompleted', (resp) => {
    // response contains returned errorCode
  });

  return () => {
    authListener.remove();
    shareListener.remove();
  }
}, []);
```

## License

MIT
npm package: @humanz/react-native-video-preview
Description: A <VideoPreview /> element for react-native
Author: Chad Smith
Latest version: 1.0.2

## react-native-video-preview

A `<VideoPreview>` component for react-native on Android.

iOS support is not included because [react-native-video](https://github.com/react-native-community/react-native-video) already shows a preview when loading a video that is paused.

### Add it to your project

Run `npm i -S git://github.com/chadsmith/react-native-video-preview.git`

Then run `react-native link react-native-video-preview`

Inside your code, import the component by adding:

```javascript
import VideoPreview from 'react-native-video-preview';
```

If necessary, make the following additions to the given files manually:

**android/settings.gradle**

```
include ':react-native-video-preview'
project(':react-native-video-preview').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-video-preview/android')
```

**android/app/build.gradle**

```
dependencies {
   ...
   compile project(':react-native-video-preview')
}
```

**MainApplication.java**

On top, import:

```java
import com.github.chadsmith.RCTVideoPreview;
```

Under `.addPackage(new MainReactPackage())`:

```java
.addPackage(new VideoPreviewPackage())
```

## Usage

```javascript
<VideoPreview
  source={{ uri: 'http://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_1mb.mp4' }} // Can be a URL or a local file.
  style={styles.preview}
  resizeMode="contain" />

// Later on in your styles..
var styles = StyleSheet.create({
  preview: {
    height: 180,
    width: 320,
  },
});
```

---

**MIT Licensed**