diff --git a/src/components/Operation/Operation.tsx b/src/components/Operation/Operation.tsx index 6da94e1c..c577af15 100644 --- a/src/components/Operation/Operation.tsx +++ b/src/components/Operation/Operation.tsx @@ -17,8 +17,11 @@ import { RequestSamples } from '../RequestSamples/RequestSamples'; import { ResponsesList } from '../Responses/ResponsesList'; import { ResponseSamples } from '../ResponseSamples/ResponseSamples'; import { SecurityRequirements } from '../SecurityRequirement/SecurityRequirement'; +import {SECTION_ATTR} from '../../services'; -const OperationRow = styled(Row)` +const OperationRow = styled(Row).attrs(props => ({ + [SECTION_ATTR]: props.id, +}))` backface-visibility: hidden; contain: content; overflow: hidden; @@ -43,7 +46,7 @@ export class Operation extends React.Component { return ( {options => ( - +

diff --git a/src/services/models/Operation.ts b/src/services/models/Operation.ts index 69b1d0b3..ffaa604e 100644 --- a/src/services/models/Operation.ts +++ b/src/services/models/Operation.ts @@ -66,6 +66,7 @@ export class OperationModel implements IMenuItem { pointer: string; operationId?: string; + operationHash?: string; httpVerb: string; deprecated: boolean; path: string; @@ -106,9 +107,10 @@ export class OperationModel implements IMenuItem { // TODO: update getting pathInfo for overriding servers on path level this.servers = normalizeServers('', operationSpec.servers || operationSpec.pathServers || []); } else { + this.operationHash = operationSpec.operationId && 'operation/' + operationSpec.operationId this.id = operationSpec.operationId !== undefined - ? (parent ? parent.id + '/' : '') + 'operation/' + operationSpec.operationId + ? (parent ? parent.id + '/' : '') + this.operationHash : parent !== undefined ? parent.id + this.pointer : this.pointer;