Skip to content

Instantly share code, notes, and snippets.

View zHaytam's full-sized avatar
🎯
Focusing

Haytam Zanid zHaytam

🎯
Focusing
View GitHub Profile
<Button OnClick="OnBtnClicked">
My button
</Button>
@code {
private void OnBtnClicked()
=> Console.WriteLine("My button was clicked!");
}
<button class="btn btn-primary" @onclick="OnBtnClick">
@ChildContent
</button>
@code {
[Parameter] public RenderFragment ChildContent { get; set; }
[Parameter] public EventCallback OnClick { get; set; }
private async Task OnBtnClick()
=> await OnClick.InvokeAsync();
<CascadingValue Value="_theme">
<CascadingValue Value="@((Action)(() => _theme = (_theme == "light" ? "dark" : "light")))">
<div>
<MyButton Text="Click me!"></MyButton>
<br />
<ThemeToggler></ThemeToggler>
</div>
</CascadingValue>
</CascadingValue>
<div title="switch theme" @onclick="Toggle" style="cursor: pointer;">
@(Theme == "light" ? "🌙": "☀️")
</div>
@code {
[CascadingParameter]
public string Theme { get; set; }
[CascadingParameter]
public Action Toggle { get; set; }
<button class="@Theme">@Text</button>
@code {
[CascadingParameter]
public string Theme { get; set; }
[Parameter]
public string Text { get; set; }
}
import MyButton from './MyButton';
import ThemeContext from './ThemeContext';
import React, { useState } from 'react';
import ThemeToggler from './ThemeToggler';
function App() {
const [theme, setTheme] = useState('light');
const value = { theme, setTheme };
return (
<ThemeContext.Provider value={value}>
import React, { useContext } from 'react';
import ThemeContext from './ThemeContext';
const ThemeToggler = () => {
const { theme, setTheme } = useContext(ThemeContext);
return (
<div
style={{ cursor: 'pointer' }}
title="switch theme"
onClick={() => {
import React, { useContext } from 'react';
import ThemeContext from './ThemeContext';
const styles = {
light: {
border: '1px solid black',
background: 'white',
color: 'black',
},
dark: {
import React from 'react';
const ThemeContext = React.createContext({
theme: 'light', // current theme (default is light)
setTheme: () => {}, // function to change the theme (empty for now)
});
export default ThemeContext;
foreach (var property in typeof(ListProductsRequest).GetProperties())
{
var name = property.Name.ToCamelCase();
var getter = GenerateGetterLambda(property);
// Cache it
}