Skip to content

Commit 601567f

Browse files
committed
Updated generate Client UI
1 parent b3da330 commit 601567f

2 files changed

Lines changed: 69 additions & 56 deletions

File tree

docs/Linq2GraphQL.Docs/Components/GenerateClient.razor

Lines changed: 64 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -4,56 +4,67 @@
44

55
<Dimmer Active=isLoading>
66

7-
<ItemSelect Items="demoOptions" @bind-SelectedValue="options" SelectedTextExpression="e=>e.ClientName">
8-
<ListTemplate>
9-
@context.ClientName
10-
</ListTemplate>
11-
</ItemSelect>
12-
13-
<Card class="mt-3">
14-
<CardBody>
15-
<DataGrid>
16-
<DataGridItem Title="Name">
17-
<InputText class="form-control" @bind-Value="options.ClientName" />
18-
</DataGridItem>
19-
<DataGridItem Title="Namespace">
20-
<InputText class="form-control" @bind-Value="options.Namespace" />
21-
</DataGridItem>
22-
<DataGridItem Title="Include subscriptions">
23-
<Checkbox Switch @bind-Value="options.IncludeSubscriptions" />
24-
</DataGridItem>
25-
</DataGrid>
26-
27-
<div class="mt-3" />
28-
<Tabs>
29-
<Tab Title="Url">
30-
<DataGrid>
31-
<DataGridItem Title="Url">
32-
<InputText class="form-control" @bind-Value="options.Url" />
33-
</DataGridItem>
34-
<DataGridItem Title="Token">
35-
<InputText class="form-control" @bind-Value="options.Token" />
36-
</DataGridItem>
37-
</DataGrid>
38-
39-
40-
<Button class="mt-3" BackgroundColor="TablerColor.Primary" OnClick="GenerateClientAsync">Generate</Button>
41-
42-
</Tab>
43-
44-
<Tab Title="Schema">
45-
46-
<div class="mb-2">Run this <Icon class="icon" IconType="Icons.Copy" OnClick="CopyIntrospection" /> query and paste the result below.</div>
47-
48-
<InputTextArea class="form-control" @bind-Value="options.Schema" rows="20" />
49-
50-
<Button class="mt-3" BackgroundColor="TablerColor.Primary" OnClick="GenerateClientJson">Generate</Button>
51-
</Tab>
52-
53-
</Tabs>
54-
55-
56-
</CardBody>
57-
</Card>
58-
59-
</Dimmer>
7+
<ItemSelect Items="demoOptions" @bind-SelectedValue="options" SelectedTextExpression="e=>e.ClientName">
8+
<ListTemplate>
9+
@context.ClientName
10+
</ListTemplate>
11+
</ItemSelect>
12+
13+
<Card class="mt-3">
14+
<CardBody>
15+
<DataGrid>
16+
<DataGridItem Title="Name">
17+
<InputText class="form-control" @bind-Value="options.ClientName" />
18+
</DataGridItem>
19+
<DataGridItem Title="Namespace">
20+
<InputText class="form-control" @bind-Value="options.Namespace" />
21+
</DataGridItem>
22+
23+
<DataGridItem Title="Enum Strategy">
24+
<ItemSelect Items="EnumHelper.GetList<EnumGeneratorStrategy>()" @bind-SelectedValue="options.EnumGeneratorStrategy" />
25+
</DataGridItem>
26+
27+
<DataGridItem Title="Include subscriptions">
28+
<Checkbox Switch @bind-Value="options.IncludeSubscriptions" />
29+
</DataGridItem>
30+
31+
<DataGridItem Title="Nullable client">
32+
<Checkbox Switch @bind-Value="options.Nullable" />
33+
</DataGridItem>
34+
35+
36+
</DataGrid>
37+
38+
<div class="mt-3" />
39+
<Tabs>
40+
<Tab Title="Url">
41+
<DataGrid>
42+
<DataGridItem Title="Url">
43+
<InputText class="form-control" @bind-Value="options.Url" />
44+
</DataGridItem>
45+
<DataGridItem Title="Token">
46+
<InputText class="form-control" @bind-Value="options.Token" />
47+
</DataGridItem>
48+
</DataGrid>
49+
50+
51+
<Button class="mt-3" BackgroundColor="TablerColor.Primary" OnClick="GenerateClientAsync">Generate</Button>
52+
53+
</Tab>
54+
55+
<Tab Title="Schema">
56+
57+
<div class="mb-2">Run this <Icon class="icon" IconType="Icons.Copy" OnClick="CopyIntrospection" /> query and paste the result below.</div>
58+
59+
<InputTextArea class="form-control" @bind-Value="options.Schema" rows="20" />
60+
61+
<Button class="mt-3" BackgroundColor="TablerColor.Primary" OnClick="GenerateClientJson">Generate</Button>
62+
</Tab>
63+
64+
</Tabs>
65+
66+
67+
</CardBody>
68+
</Card>
69+
70+
</Dimmer>

docs/Linq2GraphQL.Docs/Components/GenerateClient.razor.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ private async Task GenerateClientJson()
8686
try
8787
{
8888
isLoading = true;
89-
var generator = new Generator.ClientGenerator(options.Namespace, options.ClientName, options.IncludeSubscriptions, EnumGeneratorStrategy.FailIfMissing);
89+
var generator = new Generator.ClientGenerator(options.Namespace, options.ClientName, options.IncludeSubscriptions, EnumGeneratorStrategy.FailIfMissing, options.Nullable);
9090
var entries = generator.Generate(options.Schema);
9191
await SaveEntriesAsync(entries);
9292
}
@@ -107,7 +107,7 @@ private async Task GenerateClientAsync()
107107
try
108108
{
109109
isLoading = true;
110-
var generator = new ClientGenerator(options.Namespace, options.ClientName, options.IncludeSubscriptions, EnumGeneratorStrategy.FailIfMissing);
110+
var generator = new ClientGenerator(options.Namespace, options.ClientName, options.IncludeSubscriptions, options.EnumGeneratorStrategy, options.Nullable);
111111
var entries = await generator.GenerateAsync(new Uri(options.Url), options.Token);
112112
await SaveEntriesAsync(entries);
113113
}
@@ -128,10 +128,12 @@ public class GenerateOptions
128128
public string Namespace { get; set; }
129129
public string ClientName { get; set; }
130130
public bool IncludeSubscriptions { get; set; }
131-
131+
public bool Nullable { get; set; }
132132
public string Url { get; set; }
133133
public string Token { get; set; }
134134

135+
public EnumGeneratorStrategy EnumGeneratorStrategy { get; set; }
136+
135137
public string Schema { get; set; }
136138
}
137139
}

0 commit comments

Comments
 (0)