Skip to content

Commit

Permalink
docs: remove mentions of logoUrl (#1473)
Browse files Browse the repository at this point in the history
* Add streaming text example

Signed-off-by: Mihovil Ilakovac <[email protected]>

* Updated diagram to be visible on dark mode (#1456)

Added white background so the diagram in docs is visible also in dark background.

* Update .gitattributes to not look at haskell files

* docs: remove mentions of logoUrl

---------

Signed-off-by: Mihovil Ilakovac <[email protected]>
Co-authored-by: Mihovil Ilakovac <[email protected]>
Co-authored-by: Boris Martinovic <[email protected]>
Co-authored-by: Martin Šošić <[email protected]>
  • Loading branch information
4 people authored Oct 5, 2023
1 parent 0db972d commit 1551131
Show file tree
Hide file tree
Showing 15 changed files with 346 additions and 5 deletions.
2 changes: 2 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
*.wasp linguist-language=JavaScript

*.hs linguist-detectable=false

/examples/* linguist-documentation
11 changes: 11 additions & 0 deletions examples/streaming/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
/.wasp/

# We ignore env files recognized and used by Wasp.
.env.server
.env.client

# To be extra safe, we by default ignore any files with `.env` extension in them.
# If this is too agressive for you, consider allowing specific files with `!` operator,
# or modify/delete these two lines.
*.env
*.env.*
1 change: 1 addition & 0 deletions examples/streaming/.wasproot
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
File marking the root of Wasp project.
21 changes: 21 additions & 0 deletions examples/streaming/main.wasp
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
app streaming {
wasp: {
version: "^0.11.5"
},
title: "streaming"
}

route RootRoute { path: "/", to: MainPage }
page MainPage {
component: import Main from "@client/MainPage.jsx"
}

api streamingText {
httpRoute: (GET, "/api/streaming-test"),
fn: import { getText } from "@server/streaming.js",
}

apiNamespace defaultMiddleware {
path: "/api",
middlewareConfigFn: import { getMiddlewareConfig } from "@server/streaming.js",
}
3 changes: 3 additions & 0 deletions examples/streaming/src/.waspignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Ignore editor tmp files
**/*~
**/#*#
89 changes: 89 additions & 0 deletions examples/streaming/src/client/Main.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
* {
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
box-sizing: border-box;
}

body {
margin: 0;
padding: 0;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen",
"Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue",
sans-serif;
}

.container {
min-height: 100vh;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}

main {
padding: 5rem 0;
flex: 1;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}

main p {
font-size: 1.2rem;
}

.logo {
margin-bottom: 2rem;
}

.logo img {
max-height: 200px;
}

.welcome-title {
font-weight: 500;
}

.welcome-subtitle {
font-weight: 400;
margin-bottom: 3rem;
}

.buttons {
display: flex;
flex-direction: row;
}

.buttons .button:not(:last-child) {
margin-right: 0.5rem;
}

.button {
border-radius: 3px;
font-size: 1.2rem;
padding: 1rem 2rem;
text-align: center;
font-weight: 700;
text-decoration: none;
}

.button-filled {
border: 2px solid #bf9900;
background-color: #bf9900;
color: #f4f4f4;
}

.button-outline {
border: 2px solid #8a9cff;
color: #8a9cff;
background-color: none;
}

code {
border-radius: 5px;
padding: 0.2rem;
background: #efefef;
font-family: Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono,
Bitstream Vera Sans Mono, Courier New, monospace;
}
57 changes: 57 additions & 0 deletions examples/streaming/src/client/MainPage.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
import { useState, useEffect } from "react";
import config from "@wasp/config";
import "./Main.css";

const MainPage = () => {
const { response } = useTextStream("/api/streaming-test");
return (
<div className="container">
<main>
<h1>Streaming Demo</h1>
<p
style={{
maxWidth: "600px",
}}
>
{response}
</p>
</main>
</div>
);
};
export default MainPage;

function useTextStream(path) {
const [response, setResponse] = useState("");
useEffect(() => {
const controller = new AbortController();
fetchStream(
path,
(chunk) => {
setResponse((prev) => prev + chunk);
},
controller
);
return () => {
controller.abort();
};
}, []);

return {
response,
};
}

async function fetchStream(path, onData, controller) {
const response = await fetch(config.apiUrl + path, {
signal: controller.signal,
});
const reader = response.body.pipeThrough(new TextDecoderStream()).getReader();
while (true) {
const { done, value } = await reader.read();
if (done) {
return;
}
onData(value.toString());
}
}
55 changes: 55 additions & 0 deletions examples/streaming/src/client/tsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
// =============================== IMPORTANT =================================
//
// This file is only used for Wasp IDE support. You can change it to configure
// your IDE checks, but none of these options will affect the TypeScript
// compiler. Proper TS compiler configuration in Wasp is coming soon :)
{
"compilerOptions": {
// JSX support
"jsx": "preserve",
"strict": true,
// Allow default imports.
"esModuleInterop": true,
"lib": [
"dom",
"dom.iterable",
"esnext"
],
"allowJs": true,
// Wasp needs the following settings enable IDE support in your source
// files. Editing them might break features like import autocompletion and
// definition lookup. Don't change them unless you know what you're doing.
//
// The relative path to the generated web app's root directory. This must be
// set to define the "paths" option.
"baseUrl": "../../.wasp/out/web-app/",
"paths": {
// Resolve all "@wasp" imports to the generated source code.
"@wasp/*": [
"src/*"
],
// Resolve all non-relative imports to the correct node module. Source:
// https://www.typescriptlang.org/docs/handbook/module-resolution.html#path-mapping
"*": [
// Start by looking for the definiton inside the node modules root
// directory...
"node_modules/*",
// ... If that fails, try to find it inside definitely-typed type
// definitions.
"node_modules/@types/*"
]
},
// Correctly resolve types: https://www.typescriptlang.org/tsconfig#typeRoots
"typeRoots": [
"../../.wasp/out/web-app/node_modules/@types"
],
// Since this TS config is used only for IDE support and not for
// compilation, the following directory doesn't exist. We need to specify
// it to prevent this error:
// https://stackoverflow.com/questions/42609768/typescript-error-cannot-write-file-because-it-would-overwrite-input-file
"outDir": "phantom"
},
"exclude": [
"phantom"
],
}
1 change: 1 addition & 0 deletions examples/streaming/src/client/vite-env.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/// <reference types="../../.wasp/out/web-app/node_modules/vite/client" />
Binary file added examples/streaming/src/client/waspLogo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
29 changes: 29 additions & 0 deletions examples/streaming/src/server/streaming.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import { StreamingText } from "@wasp/apis/types";
import { MiddlewareConfigFn } from "@wasp/middleware";

// Custom API endpoint that returns a streaming text.
export const getText: StreamingText = async (req, res, context) => {
res.setHeader("Content-Type", "text/html; charset=utf-8");
res.setHeader("Transfer-Encoding", "chunked");

let counter = 1;
res.write("Hm, let me see...\n");
while (counter <= 10) {
// Send a chunk of data.
if (counter === 10) {
res.write(`and finally about ${counter}.`);
} else {
res.write(`let's talk about number ${counter} and `);
}
counter++;
// Wait for 1 second.
await new Promise((resolve) => setTimeout(resolve, 1000));
}
// End the response.
res.end();
};

// Returning the default config.
export const getMiddlewareConfig: MiddlewareConfigFn = (config) => {
return config;
};
48 changes: 48 additions & 0 deletions examples/streaming/src/server/tsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
// =============================== IMPORTANT =================================
//
// This file is only used for Wasp IDE support. You can change it to configure
// your IDE checks, but none of these options will affect the TypeScript
// compiler. Proper TS compiler configuration in Wasp is coming soon :)
{
"compilerOptions": {
// Allows default imports.
"esModuleInterop": true,
"allowJs": true,
"strict": true,
// Wasp needs the following settings enable IDE support in your source
// files. Editing them might break features like import autocompletion and
// definition lookup. Don't change them unless you know what you're doing.
//
// The relative path to the generated web app's root directory. This must be
// set to define the "paths" option.
"baseUrl": "../../.wasp/out/server/",
"paths": {
// Resolve all "@wasp" imports to the generated source code.
"@wasp/*": [
"src/*"
],
// Resolve all non-relative imports to the correct node module. Source:
// https://www.typescriptlang.org/docs/handbook/module-resolution.html#path-mapping
"*": [
// Start by looking for the definiton inside the node modules root
// directory...
"node_modules/*",
// ... If that fails, try to find it inside definitely-typed type
// definitions.
"node_modules/@types/*"
]
},
// Correctly resolve types: https://www.typescriptlang.org/tsconfig#typeRoots
"typeRoots": [
"../../.wasp/out/server/node_modules/@types"
],
// Since this TS config is used only for IDE support and not for
// compilation, the following directory doesn't exist. We need to specify
// it to prevent this error:
// https://stackoverflow.com/questions/42609768/typescript-error-cannot-write-file-because-it-would-overwrite-input-file
"outDir": "phantom",
},
"exclude": [
"phantom"
],
}
28 changes: 28 additions & 0 deletions examples/streaming/src/shared/tsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{
"compilerOptions": {
// Enable default imports in TypeScript.
"esModuleInterop": true,
"allowJs": true,
// The following settings enable IDE support in user-provided source files.
// Editing them might break features like import autocompletion and
// definition lookup. Don't change them unless you know what you're doing.
//
// The relative path to the generated web app's root directory. This must be
// set to define the "paths" option.
"baseUrl": "../../.wasp/out/server/",
"paths": {
// Resolve all non-relative imports to the correct node module. Source:
// https://www.typescriptlang.org/docs/handbook/module-resolution.html#path-mapping
"*": [
// Start by looking for the definiton inside the node modules root
// directory...
"node_modules/*",
// ... If that fails, try to find it inside definitely-typed type
// definitions.
"node_modules/@types/*"
]
},
// Correctly resolve types: https://www.typescriptlang.org/tsconfig#typeRoots
"typeRoots": ["../../.wasp/out/server/node_modules/@types"]
}
}
6 changes: 1 addition & 5 deletions web/docs/auth/social-auth/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -325,7 +325,7 @@ If you're looking for the fastest way to get your auth up and running, that's wh
The UI helpers described below are lower-level and are useful for creating your custom forms.
:::

Wasp provides sign-in buttons, logos and URLs for each of the supported social login providers.
Wasp provides sign-in buttons and URLs for each of the supported social login providers.

<Tabs groupId="js-ts">
<TabItem value="js" label="JavaScript">
Expand All @@ -334,12 +334,10 @@ Wasp provides sign-in buttons, logos and URLs for each of the supported social l
import {
SignInButton as GoogleSignInButton,
signInUrl as googleSignInUrl,
logoUrl as googleLogoUrl,
} from '@wasp/auth/helpers/Google'
import {
SignInButton as GitHubSignInButton,
signInUrl as gitHubSignInUrl,
logoUrl as gitHubLogoUrl,
} from '@wasp/auth/helpers/GitHub'

export const LoginPage = () => {
Expand All @@ -362,12 +360,10 @@ export const LoginPage = () => {
import {
SignInButton as GoogleSignInButton,
signInUrl as googleSignInUrl,
logoUrl as googleLogoUrl,
} from '@wasp/auth/helpers/Google'
import {
SignInButton as GitHubSignInButton,
signInUrl as gitHubSignInUrl,
logoUrl as gitHubLogoUrl,
} from '@wasp/auth/helpers/GitHub'

export const LoginPage = () => {
Expand Down
Binary file modified web/static/img/lp/wasp-compilation-diagram.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 1551131

Please sign in to comment.