Fix AuthorizeOperationBtn staleness issue

This commit is contained in:
Kyle Shockey
2017-11-17 22:55:20 -08:00
parent e2de882a16
commit c7a3520dc5
2 changed files with 12 additions and 2 deletions

View File

@@ -54,6 +54,7 @@ export default class Operation extends PureComponent {
let {
isShown,
isAuthorized,
jumpToKey,
path,
method,
@@ -78,9 +79,9 @@ export default class Operation extends PureComponent {
} = op.operation
let operation = operationProps.getIn(["op", "operation"])
let security = operationProps.get("security")
let responses = operation.get("responses")
let produces = operation.get("produces")
let security = operation.get("security") || specSelectors.security()
let parameters = getList(operation, ["parameters"])
let operationScheme = specSelectors.operationScheme(path, method)
let isShownKey = ["operations", tag, operationId]
@@ -128,7 +129,7 @@ export default class Operation extends PureComponent {
{
(!security || !security.count()) ? null :
<AuthorizeOperationBtn
isAuthorized={ authSelectors.isAuthorized(security) }
isAuthorized={ isAuthorized }
onClick={() => {
const applicableDefinitions = authSelectors.definitionsForRequirements(security)
authActions.showDefinitions(applicableDefinitions)

View File

@@ -25,9 +25,11 @@ export default class OperationContainer extends PureComponent {
jumpToKey: PropTypes.string.isRequired,
allowTryItOut: PropTypes.bool,
displayOperationId: PropTypes.bool,
isAuthorized: PropTypes.bool,
displayRequestDuration: PropTypes.bool,
response: PropTypes.instanceOf(Iterable),
request: PropTypes.instanceOf(Iterable),
security: PropTypes.instanceOf(Iterable),
isDeepLinkingEnabled: PropTypes.bool.isRequired,
getComponent: PropTypes.func.isRequired,
@@ -59,6 +61,7 @@ export default class OperationContainer extends PureComponent {
const isDeepLinkingEnabled = deepLinking && deepLinking !== "false"
const allowTryItOut = typeof props.allowTryItOut === "undefined" ?
props.specSelectors.allowTryItOutFor(props.path, props.method) : props.allowTryItOut
const security = op.getIn(["operation", "security"]) || props.specSelectors.security()
return {
operationId,
@@ -67,6 +70,8 @@ export default class OperationContainer extends PureComponent {
displayOperationId,
displayRequestDuration,
allowTryItOut,
security,
isAuthorized: props.authSelectors.isAuthorized(security),
isShown: layoutSelectors.isShown(isShownKey, docExpansion === "full" ),
jumpToKey: `paths.${props.path}.${props.method}`,
response: props.specSelectors.responseFor(props.path, props.method),
@@ -123,6 +128,8 @@ export default class OperationContainer extends PureComponent {
tag,
path,
method,
security,
isAuthorized,
operationId,
showSummary,
isShown,
@@ -152,6 +159,8 @@ export default class OperationContainer extends PureComponent {
tag,
path,
method,
security,
isAuthorized,
operationId,
showSummary,
isShown,