Files
react-native/RNTester/js/examples/ART/ARTExample.js
T
AndreiCalazans 3945f10561 - Update folder structure of RNTester's JS directory. (#25013)
Summary:
Changes RNTester, first attempt in the direction of improving the RNTester overall. Related ticket: #24647

Changed the `js` directory of the RNTester to have the following structure:
```
- js
    - assets
    - components
    - examples
    - types
    - utils
```
* **assets**
_Any images, gifs, and media content_

* **components**
_All shared components_

* **examples**
_Example View/Components to be rendered by the App_

 * **types**
_Shared flow types_

 * **utils**
_Shared utilities_

## Changelog

[General] [Changed] - Update folder structure of RNTester's JS directory.
Pull Request resolved: https://github.com/facebook/react-native/pull/25013

Differential Revision: D15515773

Pulled By: cpojer

fbshipit-source-id: 0e4b6386127f338dca0ffe8c237073be53a9e221
2019-05-28 08:39:18 -07:00

106 lines
2.6 KiB
JavaScript

/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @format
* @flow
*/
'use strict';
const React = require('react');
const {ART, Platform, View} = require('react-native');
const {Surface, Path, Group, Shape} = ART;
const scale = Platform.isTV ? 4 : 1;
type Props = $ReadOnly<{||}>;
class ARTExample extends React.Component<Props> {
render() {
const pathRect = new Path()
.moveTo(scale * 0, scale * 0)
.lineTo(scale * 0, scale * 110)
.lineTo(scale * 110, scale * 110)
.lineTo(scale * 110, scale * 0)
.close();
const pathCircle0 = new Path()
.moveTo(scale * 30, scale * 5)
.arc(scale * 0, scale * 50, scale * 25)
.arc(scale * 0, -scale * 50, scale * 25)
.close();
const pathCircle1 = new Path()
.moveTo(scale * 30, scale * 55)
.arc(scale * 0, scale * 50, scale * 25)
.arc(scale * 0, -scale * 50, scale * 25)
.close();
const pathCircle2 = new Path()
.moveTo(scale * 55, scale * 30)
.arc(scale * 50, scale * 0, scale * 25)
.arc(-scale * 50, scale * 0, scale * 25)
.close();
const pathCircle3 = new Path()
.moveTo(scale * 55, scale * 80)
.arc(scale * 50, scale * 0, scale * 25)
.arc(-scale * 50, scale * 0, scale * 25)
.close();
return (
<View>
<Surface width={scale * 200} height={scale * 200}>
<Group>
<Shape
d={pathRect}
stroke="#000080"
fill="#000080"
strokeWidth={scale}
/>
<Shape
d={pathCircle0}
stroke="#FF0000"
fill="#FF0000"
strokeWidth={scale}
/>
<Shape
d={pathCircle1}
stroke="#00FF00"
fill="#00FF00"
strokeWidth={scale}
/>
<Shape
d={pathCircle2}
stroke="#00FFFF"
fill="#00FFFF"
strokeWidth={scale}
/>
<Shape
d={pathCircle3}
stroke="#FFFFFF"
fill="#FFFFFF"
strokeWidth={scale}
/>
</Group>
</Surface>
</View>
);
}
}
exports.title = '<ART>';
exports.displayName = 'ARTExample';
exports.description = 'ART input for numeric values';
exports.examples = [
{
title: 'ART Example',
render(): React.Element<any> {
return <ARTExample />;
},
},
];