the browser-facing portion of osu!
at master 105 lines 5.0 kB view raw
1{{-- 2 Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the GNU Affero General Public License v3.0. 3 See the LICENCE file in the repository root for full licence text. 4--}} 5@php 6 $isInput ??= true; 7 $level ??= 0; 8@endphp 9@foreach($fields as $name => $field) 10 @if($name === '[]') 11 @php 12 $description = "The request body is an array (<code>{$field['type']}</code>`)"; 13 $description .= !empty($field['description']) ? ", representing ".lcfirst($field['description'])."." : '.'; 14 if(count($field['__fields'])) $description .= " Each item has the following properties:"; 15 @endphp 16 {!! Parsedown::instance()->text($description) !!} 17 18 @foreach($field['__fields'] as $subfieldName => $subfield) 19 @if(!empty($subfield['__fields'])) 20 <x-scribe::nested-fields 21 :fields="[$subfieldName => $subfield]" :endpointId="$endpointId" :isInput="$isInput" :level="$level + 2" 22 /> 23 @else 24 <div style="margin-left: {{ ($level + 2) * 14 }}px; clear: unset;"> 25 @component('scribe::components.field-details', [ 26 'name' => $subfieldName, 27 'fullName' => $subfield['name'], 28 'type' => $subfield['type'] ?? 'string', 29 'required' => $subfield['required'] ?? false, 30 'description' => $subfield['description'] ?? '', 31 // TODO: show correct example (from $subfield['example']) 32 'example' => '', 33 'endpointId' => $endpointId, 34 'hasChildren' => false, 35 'component' => 'body', 36 'isInput' => $isInput, 37 ]) 38 @endcomponent 39 </div> 40 @endif 41 @endforeach 42 @elseif(!empty($field['__fields'])) 43 <div style="@if($level) margin-left: {{ $level * 14 }}px;@else padding-left: 28px; @endif clear: unset;"> 44 <details> 45 <summary style="padding-bottom: 10px;"> 46 @component('scribe::components.field-details', [ 47 'name' => $name, 48 'fullName' => $field['name'], 49 'type' => $field['type'] ?? 'string', 50 'required' => $field['required'] ?? false, 51 'description' => $field['description'] ?? '', 52 // TODO: show correct example (from $subfield['example']) 53 'example' => '', 54 'endpointId' => $endpointId, 55 'hasChildren' => true, 56 'component' => 'body', 57 'isInput' => $isInput, 58 ]) 59 @endcomponent 60 </summary> 61 @foreach($field['__fields'] as $subfieldName => $subfield) 62 @if(!empty($subfield['__fields'])) 63 <x-scribe::nested-fields 64 :fields="[$subfieldName => $subfield]" :endpointId="$endpointId" :isInput="$isInput" :level="$level + 1" 65 /> 66 @else 67 <div style="margin-left: {{ ($level + 1) * 14 }}px; clear: unset;"> 68 @component('scribe::components.field-details', [ 69 'name' => $subfieldName, 70 'fullName' => $subfield['name'], 71 'type' => $subfield['type'] ?? 'string', 72 'required' => $subfield['required'] ?? false, 73 'description' => $subfield['description'] ?? '', 74 // TODO: show correct example (from $subfield['example']) 75 'example' => '', 76 'endpointId' => $endpointId, 77 'hasChildren' => false, 78 'component' => 'body', 79 'isInput' => $isInput, 80 ]) 81 @endcomponent 82 </div> 83 @endif 84 @endforeach 85 </details> 86 </div> 87 @else 88 <div style="@if($level) margin-left: {{ ($level + 1) * 14 }}px;@else padding-left: 28px; @endif clear: unset;"> 89 @component('scribe::components.field-details', [ 90 'name' => $name, 91 'fullName' => $field['name'], 92 'type' => $field['type'] ?? 'string', 93 'required' => $field['required'] ?? false, 94 'description' => $field['description'] ?? '', 95 // TODO: show correct example (from $subfield['example']) 96 'example' => '', 97 'endpointId' => $endpointId, 98 'hasChildren' => false, 99 'component' => 'body', 100 'isInput' => $isInput, 101 ]) 102 @endcomponent 103 </div> 104 @endif 105@endforeach