Skip to content

Instantly share code, notes, and snippets.

View helielson's full-sized avatar

Helielson helielson

  • Indaband, Frontend Bahia
  • Salvador, Brazil
View GitHub Profile
class ProfileName extends React.Component {
componentDidMount() {
profileInfoViewed('ProfileName', this.props.profile);
}
render() {
return (
<View>
<Text>{this.profile.name}</Text>
</View>
@helielson
helielson / migrate-to-ts.sh
Last active May 22, 2019 17:15
Rename javascript files to typescript
#!/bin/bash
set -e
echo "Rename files"
for file in $(find src/ -name "*.js" | grep -v __generated__ | grep -v __tests__); do
mv "$file" "${file%.js}.ts"
done
echo "Removing type import keyword..."
// ScreenA
const ScreenAQuery = graphql`
query ScreenAQuery {
root {
me {
name
}
}
}
`;
@helielson
helielson / hook.js
Last active October 23, 2019 22:38
import useLazyLoadQuery from 'react-relay/lib/relay-experimental/useLazyLoadQuery';
function Component () {
const { root } = useLazyLoadQuery(ScreenAQuery, null, {
fetchPolicy: 'store-or-network',
});
...
}
import RelayEnvironmentProvider from 'react-relay/lib/relay-experimental/RelayEnvironmentProvider';
import useLazyLoadQuery from 'react-relay/lib/relay-experimental/useLazyLoadQuery';
// ScreenA
function ScreenA() {
const { root } = useLazyLoadQuery(ScreenAQuery, null, {
fetchPolicy: 'store-or-network',
});
return (
<RelayEnvironmentProvider environment={environment}>
_traverse(node: NormalizationNode, dataID: DataID): void {
const status = this._mutator.getStatus(dataID);
if (status === UNKNOWN) {
this._handleMissing();
}
if (status === EXISTENT) {
this._traverseSelections(node.selections, dataID);
}
}
case 'store-or-network': {
shouldFetch = !hasFullQuery;
shouldAllowRender = canPartialRender;
break;
}
// https://github.com/facebook/relay/blob/66e747a68b8fac474fa44b4eb441c72c72daf89e/packages/relay-experimental/QueryResource.js#L392-L395
// ScreenB
const ScreenBQuery = graphql`
query ScreenBQuery {
root {
events(first: $first) {
edges {
node {
title
}
}
// ScreenBDetail
const ScreenBDetailQuery = graphql`
query ScreenBDetailQuery {
root {
event(id: $someId) {
title
}
}
}
`;
{
"events": {
"edges": [{
"node": {
"eventId": 1,
"title": "My event"
}
}]
}
}