From ca86625a61f8bf4d5b295974ac563884584fb845 Mon Sep 17 00:00:00 2001
From: thaddmt <68032955+thaddmt@users.noreply.github.com>
Date: Thu, 16 Nov 2023 13:05:40 -0800
Subject: [PATCH] chore: remove guides test and auth protected guides from docs
(#4722)
* chore: remove guides test and auth protected guides from docs
* update link checker
---
.github/workflows/publish-next.yml | 95 ----
.../__snapshots__/sitemap.test.ts.snap | 1 -
docs/src/data/links.tsx | 5 -
.../advanced/useAuthenticator.react.mdx | 3 +-
.../auth-protected/auth-protected.react.mdx | 461 ------------------
.../guides/auth-protected/index.page.mdx | 24 -
guides/react/protected-routes/.gitignore | 26 -
guides/react/protected-routes/README.md | 3 -
.../protected-routes/config-overrides.js | 3 -
guides/react/protected-routes/package.json | 47 --
.../react/protected-routes/public/favicon.ico | Bin 3870 -> 0 bytes
.../react/protected-routes/public/index.html | 43 --
.../react/protected-routes/public/logo192.png | Bin 5347 -> 0 bytes
.../react/protected-routes/public/logo512.png | Bin 9664 -> 0 bytes
.../protected-routes/public/manifest.json | 25 -
.../react/protected-routes/public/robots.txt | 3 -
guides/react/protected-routes/src/App.css | 17 -
guides/react/protected-routes/src/App.js | 51 --
guides/react/protected-routes/src/App.test.js | 8 -
.../react/protected-routes/src/RequireAuth.js | 11 -
.../protected-routes/src/components/Home.js | 8 -
.../protected-routes/src/components/Layout.js | 40 --
.../protected-routes/src/components/Login.js | 21 -
.../src/components/ProtectSecond.js | 8 -
.../src/components/Protected.js | 8 -
guides/react/protected-routes/src/index.css | 13 -
guides/react/protected-routes/src/index.js | 19 -
guides/react/protected-routes/src/logo.svg | 1 -
.../protected-routes/src/reportWebVitals.js | 13 -
.../react/protected-routes/src/setupTests.js | 5 -
.../react/protected-routes/waitOnConfig.json | 5 -
packages/e2e/package.json | 1 -
32 files changed, 1 insertion(+), 967 deletions(-)
delete mode 100644 docs/src/pages/[platform]/guides/auth-protected/auth-protected.react.mdx
delete mode 100644 docs/src/pages/[platform]/guides/auth-protected/index.page.mdx
delete mode 100644 guides/react/protected-routes/.gitignore
delete mode 100644 guides/react/protected-routes/README.md
delete mode 100644 guides/react/protected-routes/config-overrides.js
delete mode 100644 guides/react/protected-routes/package.json
delete mode 100644 guides/react/protected-routes/public/favicon.ico
delete mode 100644 guides/react/protected-routes/public/index.html
delete mode 100644 guides/react/protected-routes/public/logo192.png
delete mode 100644 guides/react/protected-routes/public/logo512.png
delete mode 100644 guides/react/protected-routes/public/manifest.json
delete mode 100644 guides/react/protected-routes/public/robots.txt
delete mode 100644 guides/react/protected-routes/src/App.css
delete mode 100644 guides/react/protected-routes/src/App.js
delete mode 100644 guides/react/protected-routes/src/App.test.js
delete mode 100644 guides/react/protected-routes/src/RequireAuth.js
delete mode 100644 guides/react/protected-routes/src/components/Home.js
delete mode 100644 guides/react/protected-routes/src/components/Layout.js
delete mode 100644 guides/react/protected-routes/src/components/Login.js
delete mode 100644 guides/react/protected-routes/src/components/ProtectSecond.js
delete mode 100644 guides/react/protected-routes/src/components/Protected.js
delete mode 100644 guides/react/protected-routes/src/index.css
delete mode 100644 guides/react/protected-routes/src/index.js
delete mode 100644 guides/react/protected-routes/src/logo.svg
delete mode 100644 guides/react/protected-routes/src/reportWebVitals.js
delete mode 100644 guides/react/protected-routes/src/setupTests.js
delete mode 100644 guides/react/protected-routes/waitOnConfig.json
diff --git a/.github/workflows/publish-next.yml b/.github/workflows/publish-next.yml
index b24ce8c1f06..967c293d476 100644
--- a/.github/workflows/publish-next.yml
+++ b/.github/workflows/publish-next.yml
@@ -55,101 +55,6 @@ jobs:
DOCSEARCH_DOCS_API_KEY: ${{ secrets.DOCSEARCH_DOCS_API_KEY }}
DOCSEARCH_DOCS_INDEX_NAME: ${{ secrets.DOCSEARCH_DOCS_INDEX_NAME }}
- guides:
- if: false # temporarily disable job
- runs-on: ubuntu-latest
- environment: ci
- env:
- NODE_ENV: test
- strategy:
- fail-fast: false
- matrix:
- include:
- - path: ./guides/react/protected-routes
- tags: '@guides and not @todo-guides'
-
- steps:
- - name: Checkout Amplify UI
- uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f # v3.4.0 https://github.com/actions/checkout/commit/24cb9080177205b6e8c946b17badbe402adc938f
- with:
- persist-credentials: false
-
- - name: Setup Node.js 20
- uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3.6.0 https://github.com/actions/setup-node/commit/64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c
- with:
- node-version: 20
- cache: 'yarn'
- env:
- SEGMENT_DOWNLOAD_TIMEOUT_MINS: 2
-
- - name: Restore cypress runner Cache
- uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3.3.1 https://github.com/actions/cache/commit/88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8
- id: restore-cypress-cache
- with:
- path: ~/.cache/Cypress
- key: ${{ runner.os }}-cypress-${{ hashFiles('yarn.lock') }}
- env:
- SEGMENT_DOWNLOAD_TIMEOUT_MINS: 1
-
- - name: Install packages
- run: yarn install
- - name: Add Amplify CLI
- run: yarn global add @aws-amplify/cli
-
- - name: Configure AWS credentials
- uses: aws-actions/configure-aws-credentials@e1e17a757e536f70e52b5a12b2e8d1d1c60e04ef # v2.0.0 https://github.com/aws-actions/configure-aws-credentials/commit/e1e17a757e536f70e52b5a12b2e8d1d1c60e04ef
- with:
- aws-region: us-east-2
- role-to-assume: ${{ secrets.AUTH_E2E_ROLE_ARN }}
- # Amplify CLI does not support headless pull with temporary credentials
- # when useProfile is false.
- # See: https://github.com/aws-amplify/amplify-cli/issues/11009.
- - name: Create temp AWS profile
- run: |
- aws configure set aws_access_key_id $AWS_ACCESS_KEY_ID && \
- aws configure set aws_secret_access_key $AWS_SECRET_ACCESS_KEY && \
- aws configure set aws_session_token $AWS_SESSION_TOKEN && \
- aws configure set default.region $AWS_REGION
- - name: Pull down AWS environments
- run: yarn environments auth pull:email
- - name: Delete AWS Profile
- run: rm -rf ~/.aws
-
- - name: Install guides
- run: yarn install
- working-directory: ${{ matrix.path }}
-
- - name: Build guides
- run: yarn build
- working-directory: ${{ matrix.path }}
-
- - name: Start guides site
- run: yarn start & npx wait-on -c waitOnConfig.json -t 20000 http-get://localhost:3000
- working-directory: ${{ matrix.path }}
-
- - name: Run E2E tests against guides
- run: yarn e2e test:guides
- id: e2e
- env:
- # Override on the default value in `cypress.json` with framework-specific tag
- TAGS: '${{ matrix.tags }}'
-
- # Env values for testing flows
- DOMAIN: ${{ secrets.DOMAIN }}
- PHONE_NUMBER: ${{ secrets.PHONE_NUMBER }}
- USERNAME: ${{ secrets.USERNAME }}
- NEW_PASSWORD: ${{ secrets.NEW_PASSWORD }}
- VALID_PASSWORD: ${{ secrets.VALID_PASSWORD }}
- - name: Upload videos and screenshots
- uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2 https://github.com/actions/upload-artifact/commit/0b7f8abb1508181956e8e162db84b466c27e18ce
- if: ${{ failure() && steps.e2e.outcome != 'success' }}
- with:
- name: guides-cypress-error
- path: |
- packages/e2e/cypress/videos/**
- packages/e2e/cypress/screenshots/**
- retention-days: 5
-
publish:
uses: aws-amplify/amplify-ui/.github/workflows/reusable-tagged-publish.yml@main
with:
diff --git a/docs/__tests__/__snapshots__/sitemap.test.ts.snap b/docs/__tests__/__snapshots__/sitemap.test.ts.snap
index 6d95b9797f0..11cba4c3a4e 100644
--- a/docs/__tests__/__snapshots__/sitemap.test.ts.snap
+++ b/docs/__tests__/__snapshots__/sitemap.test.ts.snap
@@ -123,7 +123,6 @@ exports[`Sitemap Snapshot 1`] = `
/react/getting-started/usage/nextjs,
/react/getting-started/usage/vite,
/react/guides,
-/react/guides/auth-protected,
/react/guides/css-in-js,
/react/theming,
/react/theming/css-variables,
diff --git a/docs/src/data/links.tsx b/docs/src/data/links.tsx
index 3ef9334f42c..7c9d296e4b3 100644
--- a/docs/src/data/links.tsx
+++ b/docs/src/data/links.tsx
@@ -556,11 +556,6 @@ export const guides: ComponentNavItem[] = [
label: 'CSS in JS',
platforms: ['react', 'vue', 'angular'],
},
- {
- href: '/guides/auth-protected',
- label: 'Protected Routes',
- platforms: ['react'],
- },
];
export const gettingStarted: ComponentNavItem[] = [
diff --git a/docs/src/pages/[platform]/connected-components/authenticator/advanced/useAuthenticator.react.mdx b/docs/src/pages/[platform]/connected-components/authenticator/advanced/useAuthenticator.react.mdx
index 3d21c488712..53479faf9f2 100644
--- a/docs/src/pages/[platform]/connected-components/authenticator/advanced/useAuthenticator.react.mdx
+++ b/docs/src/pages/[platform]/connected-components/authenticator/advanced/useAuthenticator.react.mdx
@@ -8,7 +8,6 @@ import { Alert, Tabs } from '@aws-amplify/ui-react';
>
You must render the `Authenticator` UI component before using the `useAuthenticator` hook. This hook was designed to retrieve `Authenticator` UI specific state such as `route` and `user` and should not be used without the UI component.
- For a full example of `useAuthenticator`, see the [protected routes guide](../../guides/auth-protected)
@@ -39,7 +38,7 @@ const App = () => {
## Authenticator Provider
-In advanced use cases where usage of the [`useAuthenticator` hook](advanced#useauthenticator-hook) outside the scope of the [`Authenticator`](../authenticator) is needed, wrap your application inside an `Authenticator.Provider`. The `Authenticator.Provider` guarantees that the [useAuthenticator hook](advanced#useauthenticator-hook) is available throughout your application. You can see an example of this pattern in the [Protected Routes Guide.](../../guides/auth-protected)
+In advanced use cases where usage of the [`useAuthenticator` hook](advanced#useauthenticator-hook) outside the scope of the [`Authenticator`](../authenticator) is needed, wrap your application inside an `Authenticator.Provider`. The `Authenticator.Provider` guarantees that the [useAuthenticator hook](advanced#useauthenticator-hook) is available throughout your application.
diff --git a/docs/src/pages/[platform]/guides/auth-protected/auth-protected.react.mdx b/docs/src/pages/[platform]/guides/auth-protected/auth-protected.react.mdx
deleted file mode 100644
index 64650e22cf1..00000000000
--- a/docs/src/pages/[platform]/guides/auth-protected/auth-protected.react.mdx
+++ /dev/null
@@ -1,461 +0,0 @@
-import { Image, Tabs } from '@aws-amplify/ui-react';
-import { ExampleCode } from '@/components/Example';
-import { TerminalCommand } from '@/components/InstallScripts';
-
-The [Amplify UI Authenticator](../connected-components/authenticator) component allows you to quickly scaffold out an end-to-end authentication flow, in just a few lines of code.
-
-Typically, this can be accomplished by wrapping the entire application in the [withAuthenticator](../connected-components/authenticator#quick-start) higher-order component. This forces the entire application behind a login page.
-
-Let's imagine you needed a web application where the login page was in its own route, and that you needed a handful of selected routes to only be accessed by logged in users.
-
-This guide demonstrates that scenario while using the [Amplify UI Authenticator](../connected-components/authenticator) and the [Amplify CLI](https://docs.amplify.aws/cli/).
-
-> If you'd like to follow along, please use this example [Github repo](https://github.com/aws-amplify/amplify-ui/tree/main/guides/react/protected-routes). Additionally, you can watch this [video](https://www.youtube.com/watch?v=6f635LVtwgk&feature=youtu.be) that walks through this process, and includes a bonus section on how to create a lambda function with a custom authorizer.
-
-_Example Screenshot of App_
-
-
-
-## Setup
-
-To get started we'll need to create a new React application, by following these steps:
-
-
-```bash
-npx create-react-app new-auth-app
-cd new-auth-app
-```
-
-
-Next, install the Amplify libraries and React Router.
-
-
-
- npm
- yarn
-
-
-
-
-
-
-
-
-
-To add authentication to your application we'll need to install the Amplify CLI. This tool gives us a command line utility to add AWS services.
-
-
-
-
-
-
-
-
-
-
-After this, run the `amplify init` command. This will setup your application so it can communicate with your AWS account.
-
-
-```bash
-amplify init
-```
-
-
-Next, add authentication, and follow the prompts:
-
-
-```bash
-amplify add auth
-```
-
-
-Finally, run the `push` command to deploy your new AWS backend.
-
-
-```bash
-amplify push
-```
-
-
-Last thing you should do is copy and paste the following CSS into your `App.css` file:
-
-
-```css
-/* App.css */
-#root {
- text-align: center;
- margin: 1.2rem;
-}
-
-nav {
- display: flex;
- justify-content: center;
- gap: 2rem;
- margin-bottom: 2rem;
-}
-
-.auth-wrapper {
- display: flex;
- justify-content: center;
- margin-top: 2rem;
-}
-```
-
-
-Feel free to modify it, this will help with the look and feel of your example application.
-
-You should now be ready to dive into the React code.
-
-## Setting up the Authenticator
-
-One of the most important parts of your application is adding and configuring the Authenticator.
-
-Let's begin by opening up the `index.js` file and adding the following configuration:
-
-
-```js
-// index.js
-...
-import { Amplify } from 'aws-amplify';
-import awsExports from "./aws-exports";
-import "./index.css";
-
-Amplify.configure(awsExports);
-...
-```
-
-
-This imports the newly created `aws-exports` file into your app and configures it with Amplify.
-
-Next, create a new `components` folder in the root of your application. In here create a new `Login` component.
-
-This component will display the `Authenticator` and allow you to create new users and log in. If you like to add additional configuration you can look at the [configuration documentation](../connected-components/authenticator).
-
-In addition, after a user logs in, it will redirected them to the last place they navigated to. This is a very helpful pattern when working with protected routes. If you'd like more information on this pattern please see the [React Router Auth documentation](https://v5.reactrouter.com/web/example/auth-workflow).
-
-
-
-```jsx
-// components/Login.js
-import { useEffect } from "react";
-
-import { Authenticator, useAuthenticator, View } from '@aws-amplify/ui-react';
-import '@aws-amplify/ui-react/styles.css';
-
-import { useNavigate, useLocation } from 'react-router';
-
-export function Login() {
- const { route } = useAuthenticator((context) => [context.route]);
- const location = useLocation();
- const navigate = useNavigate();
- let from = location.state?.from?.pathname || '/';
- useEffect(() => {
- if (route === 'authenticated') {
- navigate(from, { replace: true });
- }
- }, [route, navigate, from]);
- return (
-
-
-
- );
-}
-```
-
-
-Let's take a look at this line in more detail:
-
-
-```js
-const { route } = useAuthenticator((context) => [context.route]);
-```
-
-
-The [useAuthenticator](../connected-components/authenticator/advanced#useauthenticator-hook) hook is used to access, modify, and update the Authenticator's auth state. In this example we destructure `useAuthenticator` and receive the `route`. The `route` can be used to tell if a route is `authenticated` or not. The `route` can also be set to `signIn`,`signOut`, and even `idle` or `setup` depending on where the user is during the authentication flow.
-
-> You may have noticed that we passed into the `useAuthenticator` a context callback function: `(context) => [context.route]` This is very important as it will help prevent unneccessary re-renders of the application. Excluding it may also cause errors!
-
-Let's take a look at the `useEffect` below:
-
-
-```js
-useEffect(() => {
- if (route === 'authenticated') {
- navigate(from, { replace: true });
- }
-}, [route, navigate, from]);
-```
-
-
-When the `route` changes to `authenticated` the `useEffect` will trigger and the user will be navigated to the previous location.
-
-Alternatively, instead of using `route` this can also be accomplished using `Auth.currentAuthenticatedUser()`. This promise from the `aws-amplify` [library](https://docs.amplify.aws/lib/auth/manageusers/q/platform/js/) will return the `user` information back. If the user isn't logged in the promise will reject.
-
-## Adding in a RequireAuth component
-
-Let's take a look at `RequireAuth` next. This component will be used to gate whether a route can be accessed or not. Routes that are **NOT** authenticated will be redirected back to `/login`. State will also be preserved.
-
-If the customer is logged in, the `route` will be set to `authenticated`, and the user can continue on.
-
-Create a new file called `RequireAuth.js` and add the code below:
-
-
-```jsx
-// RequireAuth.js
-import { useLocation, Navigate } from 'react-router-dom';
-import { useAuthenticator } from '@aws-amplify/ui-react';
-
-export function RequireAuth({ children }) {
- const location = useLocation();
- const { route } = useAuthenticator((context) => [context.route]);
- if (route !== 'authenticated') {
- return ;
- }
- return children;
-}
-```
-
-
-> If you're logged in and refresh the browser, the `route` may temporarily be set to `idle` or `setup` while it loads. That will cause a redirection back to the `/login` page, which in turn will redirect back to the protected route. The user will not notice anything, and the protected route will be displayed. However, if you like to have more control of this process you can use `Auth.currentAuthenticatedUser()` instead.
-
-We'll need to use this component later.
-
-### Add the other components
-
-Before we can setup the router, let's setup the rest of the components.
-
-First, let's create the `Protected`, `ProtectSecond`, and `Home` components in the `components` folder.
-
-The `Home` component will display a simple message for users on the root index route.
-
-
-
-```jsx
-// components/Home.js
-import { Heading } from '@aws-amplify/ui-react';
-export function Home() {
- return (
-
- Please use the buttons at the top to test out protected routes!
-
- );
-}
-```
-
-
-
-Next up are the two protected routes. They will show a message on the page if the user is `authenticated`. If not it will
-show `Loading`.
-
-
-
-```jsx
-// components/Protected.js
-import { useAuthenticator, Heading } from '@aws-amplify/ui-react';
-export function Protected() {
- const { route } = useAuthenticator((context) => [context.route]);
-
- const message =
- route === 'authenticated' ? 'FIRST PROTECTED ROUTE!' : 'Loading...';
- return {message};
-}
-```
-
-
-
-Same with the second protected component.
-
-
-
-```jsx
-// components/ProtectSecond.js
-import { useAuthenticator, Heading } from '@aws-amplify/ui-react';
-export function ProtectedSecond() {
- const { route } = useAuthenticator((context) => [context.route]);
-
- const message =
- route === 'authenticated' ? 'SECOND PROTECTED ROUTE!' : 'Loading...';
- return {message};
-}
-```
-
-
-
-Lastly, we'll create a `Layout` that will surround the whole application and give us a nice menu bar at the top.
-
-
-
-```jsx
-// components/Layout.js
-import React from 'react';
-import { Outlet, useNavigate } from 'react-router-dom';
-import { useAuthenticator, Button, Heading, View } from '@aws-amplify/ui-react';
-
-export function Layout() {
- const { route, signOut } = useAuthenticator((context) => [
- context.route,
- context.signOut,
- ]);
- const navigate = useNavigate();
-
- function logOut() {
- signOut();
- navigate('/login');
- }
- return (
- <>
-
- Example Auth Routes App
-
- {route === 'authenticated' ? 'You are logged in!' : 'Please Login!'}
-
-
-
- >
- );
-}
-```
-
-
-
-You'll notice that we are using the `route` to check if the user is `authenticated` again. This is helpful because we can use it to show a different message for users who are logged in versus those who are not.
-
-When a user logs out, we'll navigate them back to the `/login` page.
-
-## Adding the router and protecting routes
-
-At this point we are ready to add in the router and start protecting routes.
-
-Inside the `App.js` file delete all the code. Update the file as seen below:
-
-
-
-```jsx
-//App.js
-import { Authenticator } from '@aws-amplify/ui-react';
-
-import { Protected } from './components/Protected';
-import { RequireAuth } from './RequireAuth';
-import { Login } from './components/Login';
-import { ProtectedSecond } from './components/ProtectSecond';
-import { Home } from './components/Home';
-import { Layout } from './components/Layout';
-
-import { BrowserRouter, Routes, Route } from 'react-router-dom';
-
-import './App.css';
-
-function MyRoutes() {
- return (
-
-
- }>
- } />
-
-
-
- }
- />
-
-
-
- }
- />
- } />
-
-
-
- );
-}
-
-function App() {
- return (
-
-
-
- );
-}
-
-export default App;
-```
-
-
-
-Let's break this down, since we have a multiple route application, we must surround our main app with the `Authentication.Provider`.
-
-
-```jsx
-function App() {
- return (
-
-
-
- );
-}
-````
-
-
-
-This will assure us that we can use the `useAuthenticator` hook anywhere in your application without issues.
-
-Another important factor is protecting routes. Since we have created the `RequireAuth` component we can now use it to surround any route component that we want protected, as seen below:
-
-
- ```jsx
-
-
-
- }
- />
- ```
-
-
-That's all we have to do. Now this route will be protected, and if anyone tries to navigate to it, without being logged in, they'll be redirected to the `/login` page.
-
-## Try it out!
-
-Feel free to run the application and try it out!
-
-
-```bash
-npm start
-```
-
-
-
-Try clicking on a protected route and getting redirected to the `/login` page. After you log in, you'll be redirected to the previous protected route!
-
-## Conclusion
-
-Congratulations! You've now setup your very own protected route React application using the AWS Amplify UI libraries!
-
-If you find any problems with this tutorial, please open an issue on [Github](https://github.com/aws-amplify/amplify-ui/issues/new/choose).
diff --git a/docs/src/pages/[platform]/guides/auth-protected/index.page.mdx b/docs/src/pages/[platform]/guides/auth-protected/index.page.mdx
deleted file mode 100644
index 3ffa133f01d..00000000000
--- a/docs/src/pages/[platform]/guides/auth-protected/index.page.mdx
+++ /dev/null
@@ -1,24 +0,0 @@
----
-title: How to create an application with protected routes using the Authenticator component
-description: How to protect routes with Amplify Authenticator.
-supportedFrameworks: react
----
-
-import { Fragment } from '@/components/Fragment';
-
-import { getCustomStaticPath } from '@/utils/getCustomStaticPath';
-
-
-export async function getStaticPaths() {
- return getCustomStaticPath(frontmatter.supportedFrameworks);
-}
-
-{/* `getStaticProps` is required to prevent "Error: getStaticPaths was added without a getStaticProps. Without getStaticProps, getStaticPaths does nothing" */}
-
-export async function getStaticProps() {
- return { props: {} }
-}
-
-
- {({ platform }) => import(`./auth-protected.${platform}.mdx`)}
-
diff --git a/guides/react/protected-routes/.gitignore b/guides/react/protected-routes/.gitignore
deleted file mode 100644
index 4f12cfd56c8..00000000000
--- a/guides/react/protected-routes/.gitignore
+++ /dev/null
@@ -1,26 +0,0 @@
-# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
-
-# dependencies
-/node_modules
-/.pnp
-.pnp.js
-aws-exports.js
-yarn.lock
-package-lock.json
-
-# testing
-/coverage
-
-# production
-/build
-
-# misc
-.DS_Store
-.env.local
-.env.development.local
-.env.test.local
-.env.production.local
-
-npm-debug.log*
-yarn-debug.log*
-yarn-error.log*
diff --git a/guides/react/protected-routes/README.md b/guides/react/protected-routes/README.md
deleted file mode 100644
index d2e10bd1fd9..00000000000
--- a/guides/react/protected-routes/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# Protected Routes Sample App
-
-This sample app is featured in the [Protected Routes Guide](https://ui.docs.amplify.aws/react/guides/auth-protected). Feel free to follow along there.
diff --git a/guides/react/protected-routes/config-overrides.js b/guides/react/protected-routes/config-overrides.js
deleted file mode 100644
index ab4b704de2f..00000000000
--- a/guides/react/protected-routes/config-overrides.js
+++ /dev/null
@@ -1,3 +0,0 @@
-const { removeModuleScopePlugin } = require('customize-cra');
-
-module.exports = removeModuleScopePlugin();
diff --git a/guides/react/protected-routes/package.json b/guides/react/protected-routes/package.json
deleted file mode 100644
index ccc707176fc..00000000000
--- a/guides/react/protected-routes/package.json
+++ /dev/null
@@ -1,47 +0,0 @@
-{
- "name": "@aws-amplify/ui-route-demo",
- "version": "0.1.0",
- "private": true,
- "dependencies": {
- "@aws-amplify/ui-react": "latest",
- "@testing-library/jest-dom": "^5.16.4",
- "@testing-library/react": "^13.0.1",
- "@testing-library/user-event": "^13.5.0",
- "aws-amplify": "^6.0.2",
- "react": "latest",
- "react-dom": "latest",
- "react-router-dom": "^6.3.0",
- "react-scripts": "5.0.0",
- "web-vitals": "^2.1.4"
- },
- "scripts": {
- "dev": "react-app-rewired start",
- "start": "serve build -s -p 3000",
- "build": "react-app-rewired build",
- "test": "react-app-rewired test",
- "eject": "react-app-rewired eject"
- },
- "eslintConfig": {
- "extends": [
- "react-app",
- "react-app/jest"
- ]
- },
- "browserslist": {
- "production": [
- ">0.2%",
- "not dead",
- "not op_mini all"
- ],
- "development": [
- "last 1 chrome version",
- "last 1 firefox version",
- "last 1 safari version"
- ]
- },
- "devDependencies": {
- "customize-cra": "^1.0.0",
- "react-app-rewired": "^2.2.1",
- "serve": "^13.0.2"
- }
-}
diff --git a/guides/react/protected-routes/public/favicon.ico b/guides/react/protected-routes/public/favicon.ico
deleted file mode 100644
index a11777cc471a4344702741ab1c8a588998b1311a..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 3870
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
baj7?x%VD!5Cxk2YbYLNVeiXvvpMCWYo=by@
diff --git a/guides/react/protected-routes/public/index.html b/guides/react/protected-routes/public/index.html
deleted file mode 100644
index aa069f27cbd..00000000000
--- a/guides/react/protected-routes/public/index.html
+++ /dev/null
@@ -1,43 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
- React App
-
-
-
-
-
-
-
diff --git a/guides/react/protected-routes/public/logo192.png b/guides/react/protected-routes/public/logo192.png
deleted file mode 100644
index fc44b0a3796c0e0a64c3d858ca038bd4570465d9..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 5347
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
b{|{}U^kRn2wo}j7|0ATu<;8xA7zX}7|B6mN
diff --git a/guides/react/protected-routes/public/manifest.json b/guides/react/protected-routes/public/manifest.json
deleted file mode 100644
index 080d6c77ac2..00000000000
--- a/guides/react/protected-routes/public/manifest.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{
- "short_name": "React App",
- "name": "Create React App Sample",
- "icons": [
- {
- "src": "favicon.ico",
- "sizes": "64x64 32x32 24x24 16x16",
- "type": "image/x-icon"
- },
- {
- "src": "logo192.png",
- "type": "image/png",
- "sizes": "192x192"
- },
- {
- "src": "logo512.png",
- "type": "image/png",
- "sizes": "512x512"
- }
- ],
- "start_url": ".",
- "display": "standalone",
- "theme_color": "#000000",
- "background_color": "#ffffff"
-}
diff --git a/guides/react/protected-routes/public/robots.txt b/guides/react/protected-routes/public/robots.txt
deleted file mode 100644
index e9e57dc4d41..00000000000
--- a/guides/react/protected-routes/public/robots.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-# https://www.robotstxt.org/robotstxt.html
-User-agent: *
-Disallow:
diff --git a/guides/react/protected-routes/src/App.css b/guides/react/protected-routes/src/App.css
deleted file mode 100644
index 23cca42a6fc..00000000000
--- a/guides/react/protected-routes/src/App.css
+++ /dev/null
@@ -1,17 +0,0 @@
-#root {
- text-align: center;
- margin: 1.2rem;
-}
-
-nav {
- display: flex;
- justify-content: center;
- gap: 2rem;
- margin-bottom: 2rem;
-}
-
-.auth-wrapper {
- display: flex;
- justify-content: center;
- margin-top: 2rem;
-}
diff --git a/guides/react/protected-routes/src/App.js b/guides/react/protected-routes/src/App.js
deleted file mode 100644
index 1fc2a3754c4..00000000000
--- a/guides/react/protected-routes/src/App.js
+++ /dev/null
@@ -1,51 +0,0 @@
-import { Authenticator } from '@aws-amplify/ui-react';
-
-import { Protected } from './components/Protected';
-import { RequireAuth } from './RequireAuth';
-import { Login } from './components/Login';
-import { ProtectedSecond } from './components/ProtectSecond';
-import { Home } from './components/Home';
-import { Layout } from './components/Layout';
-
-import { BrowserRouter, Routes, Route } from 'react-router-dom';
-
-import './App.css';
-
-function MyRoutes() {
- return (
-
-
- }>
- } />
-
-
-
- }
- />
-
-
-
- }
- />
- } />
-
-
-
- );
-}
-
-function App() {
- return (
-
-
-
- );
-}
-
-export default App;
diff --git a/guides/react/protected-routes/src/App.test.js b/guides/react/protected-routes/src/App.test.js
deleted file mode 100644
index 1f03afeece5..00000000000
--- a/guides/react/protected-routes/src/App.test.js
+++ /dev/null
@@ -1,8 +0,0 @@
-import { render, screen } from '@testing-library/react';
-import App from './App';
-
-test('renders learn react link', () => {
- render();
- const linkElement = screen.getByText(/learn react/i);
- expect(linkElement).toBeInTheDocument();
-});
diff --git a/guides/react/protected-routes/src/RequireAuth.js b/guides/react/protected-routes/src/RequireAuth.js
deleted file mode 100644
index 204a70ad09d..00000000000
--- a/guides/react/protected-routes/src/RequireAuth.js
+++ /dev/null
@@ -1,11 +0,0 @@
-import { useLocation, Navigate } from 'react-router-dom';
-import { useAuthenticator } from '@aws-amplify/ui-react';
-
-export function RequireAuth({ children }) {
- const location = useLocation();
- const { route } = useAuthenticator((context) => [context.route]);
- if (route !== 'authenticated') {
- return ;
- }
- return children;
-}
diff --git a/guides/react/protected-routes/src/components/Home.js b/guides/react/protected-routes/src/components/Home.js
deleted file mode 100644
index a1f7c621a4d..00000000000
--- a/guides/react/protected-routes/src/components/Home.js
+++ /dev/null
@@ -1,8 +0,0 @@
-import { Heading } from '@aws-amplify/ui-react';
-export function Home() {
- return (
-
- Please use the buttons at the top to test out protected routes!
-
- );
-}
diff --git a/guides/react/protected-routes/src/components/Layout.js b/guides/react/protected-routes/src/components/Layout.js
deleted file mode 100644
index d3c9c2b1b07..00000000000
--- a/guides/react/protected-routes/src/components/Layout.js
+++ /dev/null
@@ -1,40 +0,0 @@
-import React from 'react';
-import { Outlet, useNavigate } from 'react-router-dom';
-import { useAuthenticator, Button, Heading, View } from '@aws-amplify/ui-react';
-
-export function Layout() {
- const { route, signOut } = useAuthenticator((context) => [
- context.route,
- context.signOut,
- ]);
- const navigate = useNavigate();
-
- function logOut() {
- signOut();
- navigate('/login');
- }
- return (
- <>
-
- Example Auth Routes App
-
- {route === 'authenticated' ? 'You are logged in!' : 'Please Login!'}
-
-
-
- >
- );
-}
diff --git a/guides/react/protected-routes/src/components/Login.js b/guides/react/protected-routes/src/components/Login.js
deleted file mode 100644
index dab564ba057..00000000000
--- a/guides/react/protected-routes/src/components/Login.js
+++ /dev/null
@@ -1,21 +0,0 @@
-import { Authenticator } from '@aws-amplify/ui-react';
-import '@aws-amplify/ui-react/styles.css';
-import { useAuthenticator, View } from '@aws-amplify/ui-react';
-import { useEffect } from 'react';
-import { useNavigate, useLocation } from 'react-router';
-export function Login() {
- const { route } = useAuthenticator((context) => [context.route]);
- const location = useLocation();
- const navigate = useNavigate();
- let from = location.state?.from?.pathname || '/';
- useEffect(() => {
- if (route === 'authenticated') {
- navigate(from, { replace: true });
- }
- }, [route, navigate, from]);
- return (
-
-
-
- );
-}
diff --git a/guides/react/protected-routes/src/components/ProtectSecond.js b/guides/react/protected-routes/src/components/ProtectSecond.js
deleted file mode 100644
index 6ffe8d12caa..00000000000
--- a/guides/react/protected-routes/src/components/ProtectSecond.js
+++ /dev/null
@@ -1,8 +0,0 @@
-import { useAuthenticator, Heading } from '@aws-amplify/ui-react';
-export function ProtectedSecond() {
- const { route } = useAuthenticator((context) => [context.route]);
-
- const message =
- route === 'authenticated' ? 'SECOND PROTECTED ROUTE!' : 'Loading...';
- return {message};
-}
diff --git a/guides/react/protected-routes/src/components/Protected.js b/guides/react/protected-routes/src/components/Protected.js
deleted file mode 100644
index 27e25718cef..00000000000
--- a/guides/react/protected-routes/src/components/Protected.js
+++ /dev/null
@@ -1,8 +0,0 @@
-import { useAuthenticator, Heading } from '@aws-amplify/ui-react';
-export function Protected() {
- const { route } = useAuthenticator((context) => [context.route]);
-
- const message =
- route === 'authenticated' ? 'FIRST PROTECTED ROUTE!' : 'Loading...';
- return {message};
-}
diff --git a/guides/react/protected-routes/src/index.css b/guides/react/protected-routes/src/index.css
deleted file mode 100644
index ec2585e8c0b..00000000000
--- a/guides/react/protected-routes/src/index.css
+++ /dev/null
@@ -1,13 +0,0 @@
-body {
- margin: 0;
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
- 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
- sans-serif;
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
-}
-
-code {
- font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',
- monospace;
-}
diff --git a/guides/react/protected-routes/src/index.js b/guides/react/protected-routes/src/index.js
deleted file mode 100644
index 18354429b66..00000000000
--- a/guides/react/protected-routes/src/index.js
+++ /dev/null
@@ -1,19 +0,0 @@
-import { createRoot } from 'react-dom/client';
-import App from './App';
-import { Amplify } from 'aws-amplify';
-
-/**
- * Following along with the
- * tutorial https://ui.docs.amplify.aws/react/guides/auth-protected?
- * Update this import to match the path to your aws-exports.js file:
- * import aws_exports from "./aws-exports";
- */
-import aws_exports from '../../../../environments/auth/auth-with-email/src/aws-exports';
-
-import './index.css';
-
-const container = document.getElementById('root');
-const root = createRoot(container);
-
-Amplify.configure(aws_exports);
-root.render();
diff --git a/guides/react/protected-routes/src/logo.svg b/guides/react/protected-routes/src/logo.svg
deleted file mode 100644
index f1567e67a5d..00000000000
--- a/guides/react/protected-routes/src/logo.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/guides/react/protected-routes/src/reportWebVitals.js b/guides/react/protected-routes/src/reportWebVitals.js
deleted file mode 100644
index 532f29b0bb6..00000000000
--- a/guides/react/protected-routes/src/reportWebVitals.js
+++ /dev/null
@@ -1,13 +0,0 @@
-const reportWebVitals = (onPerfEntry) => {
- if (onPerfEntry && onPerfEntry instanceof Function) {
- import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {
- getCLS(onPerfEntry);
- getFID(onPerfEntry);
- getFCP(onPerfEntry);
- getLCP(onPerfEntry);
- getTTFB(onPerfEntry);
- });
- }
-};
-
-export default reportWebVitals;
diff --git a/guides/react/protected-routes/src/setupTests.js b/guides/react/protected-routes/src/setupTests.js
deleted file mode 100644
index 8f2609b7b3e..00000000000
--- a/guides/react/protected-routes/src/setupTests.js
+++ /dev/null
@@ -1,5 +0,0 @@
-// jest-dom adds custom jest matchers for asserting on DOM nodes.
-// allows you to do things like:
-// expect(element).toHaveTextContent(/react/i)
-// learn more: https://github.com/testing-library/jest-dom
-import '@testing-library/jest-dom';
diff --git a/guides/react/protected-routes/waitOnConfig.json b/guides/react/protected-routes/waitOnConfig.json
deleted file mode 100644
index db85270c8c6..00000000000
--- a/guides/react/protected-routes/waitOnConfig.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "headers": {
- "accept": "text/html"
- }
-}
diff --git a/packages/e2e/package.json b/packages/e2e/package.json
index b89244227f9..96c2549825d 100644
--- a/packages/e2e/package.json
+++ b/packages/e2e/package.json
@@ -13,7 +13,6 @@
"test:liveness": "cypress run --spec 'features/ui/components/liveness/*.feature' --browser chrome",
"test:storage": "cypress run --spec 'features/ui/components/storage/**/*.feature' --browser chrome",
"test:theme": "cypress run --spec 'features/ui/theme/*.feature' --browser chrome",
- "test:guides": "cypress run --spec 'features/ui/guides/*.feature' --browser chrome",
"precucumber": "node detox/mockServer.js &",
"cucumber": "./node_modules/.bin/cucumber-js --config detox/cucumber.json --tags @react-native",
"postcucumber": "kill $(lsof -t -i :9091)",