Skip to content

Instantly share code, notes, and snippets.

@carlrip
carlrip / WeatherForecastController.cs
Created September 9, 2019 06:50
SPA template controller
[Authorize]
[ApiController]
[Route("[controller]")]
public class WeatherForecastController : ControllerBase
{
...
}
@carlrip
carlrip / Startup.cs
Created September 9, 2019 06:18
ASP.NET Core MVC service registration
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
}
@carlrip
carlrip / Startup.cs
Created September 9, 2019 06:15
ASP.NET Core 3.0 endpoint routing
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
...
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
@carlrip
carlrip / Index.tsx
Created August 25, 2019 05:15
Consuming List
<List
data={["Fred", "Bob", "Jane"]}
renderHeader={() => <h3>Names</h3>}
renderItem={item => (
<div>
<span style={{ marginRight: "10px" }}>{item}</span>
<button>Click me</button>
</div>
)}
/>
@carlrip
carlrip / List.tsx
Created August 25, 2019 05:08
Simple List component
interface Props {
data: string[];
renderItem?: (item: string) => JSX.Element;
renderHeader?: () => JSX.Element;
}
export const List: FC<Props> = ({ data, renderItem, renderHeader }) => (
<div className="list">
<div className="list-header">{renderHeader && renderHeader()}</div>
<ul>
{data.map(item => (
@carlrip
carlrip / Index.tsx
Created August 25, 2019 04:58
Consuming Card
<Card renderHeader={() => <h3>A custom header</h3>}>
<p>Some interesting text</p>
<button>Click me</button>
</Card>
@carlrip
carlrip / Card.tsx
Created August 25, 2019 04:52
Card with render prop
interface Props {
title?: string;
renderHeader?: () => JSX.Element;
}
export const Card: FC<Props> = ({ children, title, renderHeader }) => (
<div className="card">
<div className="card-header">
{renderHeader ? renderHeader() : title !== undefined ? title : null}
</div>
<div className="card-content">{children}</div>
@carlrip
carlrip / Index.tsx
Last active August 25, 2019 04:45
Consuming `children` prop
<Card>
<p>Some interesting text</p>
<button>Click me</button>
</Card>
@carlrip
carlrip / Card.tsx
Created August 24, 2019 15:27
Children prop
export const Card: FC = ({ children }) => (
<div className="card">
{children}
</div>
);
@carlrip
carlrip / List.tsx
Created August 24, 2019 15:08
Render props interface
interface Props {
...
renderItem?: (item: string) => JSX.Element;
renderHeader?: () => JSX.Element;
}