npm package: @rio-cloud/rio-session-expired-info
Description: The RIO Session Expired Dialog
Author: TB Digital Services GmbH
Latest version: 2.0.0

# RIO Session Expired Info

👉 Provides the `SessionExpiredDialog` component that can be used to inform the user about their expired session.

🔋 Comes "batteries included", meaning you don't need to provide the translations. Just supply it with the current
locale of your app.

## Installation

Before installing, make sure you have these dependencies in your project already as they're needed by this package:
- `react` version **17** or above
- `react-dom` version **17** or above
- `react-intl` version **5.24.8** or above
- `@rio-cloud/rio-uikit` version **1.0.0** or above

Next, add the npm package to your project:

```shell
npm install @rio-cloud/rio-session-expired-info --save
```

## Usage

```typescript jsx
import { SessionExpiredDialog } from '@rio-cloud/rio-session-expired-info';

const Example = () => {
    const [showDialog, setShowDialog] = useState(false);
    
    const handleDialogClose = () => {
        setShowDialog(false);
        // you could perform other things, e.g. track that the user deliberately wants to stay in the current page
    };

    return (
        <SessionExpiredDialog
            show={showDialog}
            onClose={handleDialogClose}
            locale="en-GB"
        />
    );
}
```

## License

Both `@rio-cloud/rio-uikit` and `@rio-cloud/rio-session-expired-info` are licensed under the Apache 2.0 license.

You can see the full license text in [LICENSE](LICENSE).

## Development

A local demo page can be started with `npm start`. You can view it at http://localhost:3000.

### Publishing

ℹ️ The `version` in the [package.json](package.json) is always the latest one that's already on npmjs.com.

💪 Publishing is done by hand from your local dev machine, but mostly automated to guarantee a consistent way.

⚠️ Make sure you've committed & pushed all your changes and your working copy is clean & up to date with the 
remote. Then, when you're ready:

```shell
npm run release
```

Before running the _actual_ `release` script, npm will call our `prerelease` script automatically, which will
- format the code
- run the linter
- run the build (to produce the `dist` folder that's going to be a part of the package)

Once that's done, the `release` script will kick in, which will start [np](https://www.npmjs.com/package/np). That will
- check whether you're in the right state to publish, at all (on `master` branch, no changed files, etc.)
- provide some feedback if there are unknown files that will be added to the package for the first time and/or files
  which are present, but won't be added to the package. If that's the case, please read carefully, what's going on
- ask you which type of release / published version you want (think about semver!)
- perform a clean `npm install` just to be sure
- run tests
- update `package.json` and lockfile with the new version + commit & tag
- perform the actual `npm publish` internally (this might ask you for your npmjs.com login incl. 2FA)
- push everything to git

### TODOs

- [x] update README, docs, etc
- [x] add https://www.npmjs.com/package/np for publishing
- [x] remove s3 + deployment + distribution
- [x] re-create simple build pipeline in CDK
- [ ] re-add license checker (maybe a newer version, though)
- [x] add slack alerts and/or datadog monitors to pipelines
- [ ] set up renovate