mirror of
				https://github.com/Redocly/redoc.git
				synced 2025-11-04 01:37:32 +03:00 
			
		
		
		
	Fix path params rendering
This commit is contained in:
		
							parent
							
								
									25f65c4757
								
							
						
					
					
						commit
						fae59c7917
					
				| 
						 | 
				
			
			@ -12,7 +12,7 @@
 | 
			
		|||
        <div>
 | 
			
		||||
          <span class="param-type {{prop.type}}" [ngClass]="{'with-hint': prop._displayTypeHint}"
 | 
			
		||||
          title="{{prop._displayTypeHint}}"> {{prop._displayType}} {{prop._displayFormat}}</span>
 | 
			
		||||
          <span *ngIf="prop.isRequired" class="param-required">Required</span>
 | 
			
		||||
          <span *ngIf="prop.required" class="param-required">Required</span>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="param-description" innerHtml="{{prop.description | marked}}"></div>
 | 
			
		||||
        <div class="discriminator-info" *ngIf="prop.isDiscriminator"> This field value determines the exact schema: </div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -71,7 +71,8 @@ export default class JsonSchema extends BaseComponent {
 | 
			
		|||
    let discriminatorFieldIdx = -1;
 | 
			
		||||
    let props = Object.keys(schema.properties).map((prop, idx) => {
 | 
			
		||||
      let propData = schema.properties[prop];
 | 
			
		||||
      propData = this.injectPropData(prop, propData, schema);
 | 
			
		||||
      let propPointer = JsonPointer.join(this.pointer, ['properties', prop]);
 | 
			
		||||
      propData = JsonSchema.injectPropData(propData, prop, propPointer, this.requiredMap, schema);
 | 
			
		||||
      if (propData.isDiscriminator) discriminatorFieldIdx = idx;
 | 
			
		||||
      return propData;
 | 
			
		||||
    });
 | 
			
		||||
| 
						 | 
				
			
			@ -97,18 +98,19 @@ export default class JsonSchema extends BaseComponent {
 | 
			
		|||
    if (discrValues) discrValues.style.paddingLeft = maxWidth + 'px';
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  injectPropData(prop, propData, schema) {
 | 
			
		||||
  static injectPropData(propData, propName, propPointer, requiredMap, schema) {
 | 
			
		||||
    propData = Object.assign({}, propData);
 | 
			
		||||
    propData._name = prop;
 | 
			
		||||
    propData.isRequired = this.requiredMap[prop];
 | 
			
		||||
    propData._name = propName;
 | 
			
		||||
    propData.required = propData.required || (requiredMap && requiredMap[propName]);
 | 
			
		||||
    propData._displayType = propData.type;
 | 
			
		||||
    propData.isDiscriminator = (schema.discriminator === prop);
 | 
			
		||||
    propData.isDiscriminator = (schema && schema.discriminator === propName);
 | 
			
		||||
    if (propData.type === 'array') {
 | 
			
		||||
      let itemType = propData.items.type;
 | 
			
		||||
      let itemFormat = propData.items.format;
 | 
			
		||||
      if (itemType === 'object' || !itemType) {
 | 
			
		||||
        itemType = propData.items.title || 'object';
 | 
			
		||||
        propData._pointer = propData.items._pointer || JsonPointer.join(this.pointer, ['properties', prop, 'items']);
 | 
			
		||||
        propData._pointer = propData.items._pointer
 | 
			
		||||
          || JsonPointer.join(propPointer, ['items']);
 | 
			
		||||
      }
 | 
			
		||||
      propData._displayType = `${itemType}`;
 | 
			
		||||
      propData.format = itemFormat;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -6,7 +6,8 @@
 | 
			
		|||
      </div>
 | 
			
		||||
      <div class="param-info">
 | 
			
		||||
        <div>
 | 
			
		||||
          <span class="param-type" [ngClass]="param.type">{{param.type}}</span>
 | 
			
		||||
          <span class="param-type {{param.type}}" [ngClass]="{'with-hint': param._displayTypeHint}"
 | 
			
		||||
          title="{{param._displayTypeHint}}"> {{param._displayType}} {{param._displayFormat}}</span>
 | 
			
		||||
          <span *ngIf="param.required" class="param-required">Required</span>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="param-description" innerHtml="{{param.description | marked}}"></div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -26,6 +26,11 @@ export default class ParamsList extends BaseComponent {
 | 
			
		|||
      this.data.bodyParam = bodyParam;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    params = params.map((paramData) => {
 | 
			
		||||
      let propPointer = paramData._pointer;
 | 
			
		||||
      return JsonSchema.injectPropData(paramData, paramData.name, propPointer);
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    this.data.noParams = !(params.length || this.data.bodyParam);
 | 
			
		||||
    this.data.params = params;
 | 
			
		||||
  }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue
	
	Block a user