Skip to content

Commit 981c719

Browse files
committed
Make expression input component
1 parent 1c4f4eb commit 981c719

File tree

2 files changed

+36
-11
lines changed

2 files changed

+36
-11
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<input placeholder="Enter expression" @oninput="OnInputChanged" @bind="expression"/>
2+
<button @onclick="OnButtonClicked">@ButtonLabel</button>
3+
4+
5+
@code {
6+
[Parameter]
7+
public string ButtonLabel {get; set;}
8+
9+
public string? expression;
10+
11+
[Parameter]
12+
public EventCallback<string> ButtonClicked { get; set; }
13+
14+
[Parameter]
15+
public EventCallback<string> ExpressionChanged { get; set; }
16+
17+
private Task OnButtonClicked()
18+
{
19+
return ButtonClicked.InvokeAsync(expression);
20+
}
21+
22+
private Task OnInputChanged(ChangeEventArgs args)
23+
{
24+
return ExpressionChanged.InvokeAsync(args.Value.ToString());
25+
}
26+
}

BooleanExpressionParser.Web/Client/Pages/TruthTable.razor

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
@using BooleanExpressionParser;
2+
@using BooleanExpressionParser.Web.Client.Components
23
@using BooleanExpressionParser.Web.Client.Formatters;
34

45
@page "/truth-table"
@@ -8,24 +9,23 @@
89
<h1>Truth Table Generator</h1>
910
<p>Generate a truth table for a boolean expression.</p>
1011

11-
<input placeholder="Enter expression" @bind="expression" />
12-
<button @onclick="Generate">Generate</button>
12+
<ExpressionInput ButtonLabel="Generate" ButtonClicked="Generate" />
1313

14-
15-
<h3>Generated Table</h3>
16-
17-
<div class="table-container">
18-
@((MarkupString)currentTable)
19-
</div>
14+
@if (currentTable is not null)
15+
{
16+
<h3>Generated Table</h3>
17+
<div class="table-container">
18+
@((MarkupString)currentTable)
19+
</div>
20+
}
2021

2122

2223
@code {
23-
private string? expression;
2424
private string? currentTable;
2525

2626
private HTMLFormatter formatter = new();
2727

28-
private void Generate()
28+
private void Generate(string? expression)
2929
{
3030
if (string.IsNullOrWhiteSpace(expression)) return;
3131
var wrapper = new ExpressionWrapper(expression);
@@ -50,7 +50,6 @@
5050

5151
private Ast ParseAndGrowAst(ExpressionWrapper wrapper)
5252
{
53-
5453
var tokeniser = new Tokeniser(wrapper.Expression);
5554
var infixTokens = tokeniser.Tokenise();
5655

0 commit comments

Comments
 (0)