| 
8 | 8 |   import type { Version, VersionDependency, VersionTarget } from '$lib/generated';  | 
9 | 9 |   import { T } from '@tolgee/svelte';  | 
10 | 10 | 
  | 
11 |  | -  type IVersion = Pick<Version, 'id' | 'link' | 'version' | 'created_at'> & {  | 
 | 11 | +  type IVersion = Pick<Version, 'id' | 'link' | 'version' | 'created_at' | 'required_on_remote'> & {  | 
12 | 12 |     targets?: Pick<VersionTarget, 'targetName' | 'size' | 'hash'>[];  | 
13 | 13 |   } & { dependencies?: Pick<VersionDependency, 'mod_id' | 'optional' | 'condition'>[] };  | 
14 | 14 | 
  | 
 | 
27 | 27 |   export let modReference!: string;  | 
28 | 28 | 
  | 
29 | 29 |   export const { t } = getTranslate();  | 
 | 30 | +
  | 
 | 31 | +  function formatRemote(targets: Pick<VersionTarget, 'targetName'>[]) {  | 
 | 32 | +    if (!Array.isArray(targets)) {  | 
 | 33 | +      return;  | 
 | 34 | +    }  | 
 | 35 | +
  | 
 | 36 | +    const HasClient = targets.some((target) => target.targetName === 'Windows');  | 
 | 37 | +    const HasServer =  | 
 | 38 | +      targets.some((target) => target.targetName === 'WindowsServer') ||  | 
 | 39 | +      targets.some((target) => target.targetName === 'LinuxServer');  | 
 | 40 | +
  | 
 | 41 | +    if (HasClient && !HasServer) {  | 
 | 42 | +      return $t({  | 
 | 43 | +        key: 'version.required_on_remote.client',  | 
 | 44 | +        defaultValue: `This mod is only required on the client to function, so no server builds are provided.`  | 
 | 45 | +      });  | 
 | 46 | +    } else if (!HasClient && HasServer) {  | 
 | 47 | +      return $t({  | 
 | 48 | +        key: 'version.required_on_remote.server',  | 
 | 49 | +        defaultValue: `This mod is only required on the server to function, so no client builds are provided.`  | 
 | 50 | +      });  | 
 | 51 | +    } else if (HasClient && HasServer) {  | 
 | 52 | +      return $t({  | 
 | 53 | +        key: 'version.required_on_remote.both',  | 
 | 54 | +        defaultValue: `This mod is only required on the server or the client to function, but not required on both. See mod page/documentation for details.`  | 
 | 55 | +      });  | 
 | 56 | +    }  | 
 | 57 | +  }  | 
30 | 58 | </script>  | 
31 | 59 | 
 
  | 
32 | 60 | <div class="card p-4">  | 
 | 
62 | 90 |               </a>  | 
63 | 91 |             </div>  | 
64 | 92 |           </div>  | 
 | 93 | +          {#if !latestVersions[stability].required_on_remote}  | 
 | 94 | +            <div class="grid grid-flow-row text-center">  | 
 | 95 | +              {formatRemote(latestVersions[stability].targets ?? [])}  | 
 | 96 | +            </div>  | 
 | 97 | +          {/if}  | 
65 | 98 |           <VersionTargetSupportGrid targets={latestVersions[stability].targets} />  | 
66 | 99 |           <VersionDependenciesGrid dependencies={latestVersions[stability].dependencies} />  | 
67 | 100 |         {/if}  | 
 | 
0 commit comments