mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2026-07-01 07:40:10 +00:00
[react-relay] Remove relay prop from containers.
This commit is contained in:
14
types/react-relay/index.d.ts
vendored
14
types/react-relay/index.d.ts
vendored
@@ -18,6 +18,14 @@ export {
|
||||
import * as React from "react";
|
||||
import * as RelayRuntimeTypes from "relay-runtime";
|
||||
|
||||
// ~~~~~~~~~~~~~~~~~~~~~
|
||||
// Utility types
|
||||
// ~~~~~~~~~~~~~~~~~~~~~
|
||||
type Diff<T extends string, U extends string> = ({ [P in T]: P } & { [P in U]: never } & { [x: string]: never })[T];
|
||||
type Omit<T, K extends keyof T> = { [P in Diff<keyof T, K>]: T[P] };
|
||||
|
||||
type RemoveRelayProp<P> = Omit<P & { relay: never }, "relay">;
|
||||
|
||||
// ~~~~~~~~~~~~~~~~~~~~~
|
||||
// Maybe Fix
|
||||
// ~~~~~~~~~~~~~~~~~~~~~
|
||||
@@ -82,7 +90,7 @@ export class QueryRenderer extends ReactRelayQueryRenderer {}
|
||||
export function createFragmentContainer<T>(
|
||||
Component: React.ComponentType<T>,
|
||||
fragmentSpec: RelayRuntimeTypes.GraphQLTaggedNode | GeneratedNodeMap
|
||||
): React.ComponentType<T>;
|
||||
): React.ComponentType<RemoveRelayProp<T>>;
|
||||
|
||||
// ~~~~~~~~~~~~~~~~~~~~~
|
||||
// createPaginationContainer
|
||||
@@ -130,7 +138,7 @@ export function createPaginationContainer<T>(
|
||||
Component: React.ComponentType<T>,
|
||||
fragmentSpec: RelayRuntimeTypes.GraphQLTaggedNode | GeneratedNodeMap,
|
||||
connectionConfig: ConnectionConfig<T>
|
||||
): React.ComponentType<T>;
|
||||
): React.ComponentType<RemoveRelayProp<T>>;
|
||||
|
||||
// ~~~~~~~~~~~~~~~~~~~~~
|
||||
// createRefetchContainer
|
||||
@@ -153,4 +161,4 @@ export function createRefetchContainer<T>(
|
||||
Component: React.ComponentType<T>,
|
||||
fragmentSpec: RelayRuntimeTypes.GraphQLTaggedNode | GeneratedNodeMap,
|
||||
taggedNode: RelayRuntimeTypes.GraphQLTaggedNode
|
||||
): React.ComponentType<T>;
|
||||
): React.ComponentType<RemoveRelayProp<T>>;
|
||||
|
||||
@@ -80,6 +80,10 @@ const MyQueryRenderer = (props: { name: string }) => (
|
||||
`,
|
||||
}
|
||||
);
|
||||
|
||||
function doesNotRequireRelayPropToBeProvided() {
|
||||
<MyFragmentContainer publicProp="is available" />;
|
||||
}
|
||||
};
|
||||
|
||||
// ~~~~~~~~~~~~~~~~~~~~~
|
||||
@@ -141,6 +145,11 @@ const MyQueryRenderer = (props: { name: string }) => (
|
||||
}
|
||||
`
|
||||
);
|
||||
|
||||
function doesNotRequireRelayPropToBeProvided() {
|
||||
const feed = { stories: { edges: [] }}; // TODO
|
||||
<FeedRefetchContainer loadMoreTitle="Load More" feed={feed} />;
|
||||
}
|
||||
};
|
||||
|
||||
// ~~~~~~~~~~~~~~~~~~~~~
|
||||
@@ -232,6 +241,10 @@ const MyQueryRenderer = (props: { name: string }) => (
|
||||
`,
|
||||
}
|
||||
);
|
||||
|
||||
function doesNotRequireRelayPropToBeProvided() {
|
||||
const user = { feed: { edges: [] }}; // TODO
|
||||
<FeedPaginationContainer loadMoreTitle="Load More" user={user} />;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user